Udostępnij za pośrednictwem


Replikowanie danych z klastra platformy Kafka do usługi Event Hubs przy użyciu usługi Apache Kafka Mirror Maker 1

W tym samouczku przedstawiono sposób replikacji brokera Kafka w usłudze Azure Event Hubs przy użyciu Kafka Mirror Maker 1.

Kafka MirrorMaker z usługą Event Hubs

Uwaga

Ten przykład jest dostępny w witrynie GitHub

Uwaga

Ten artykuł zawiera odwołania do terminu, którego firma Microsoft już nie używa. Po usunięciu terminu z oprogramowania usuniemy go z tego artykułu.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie przestrzeni nazw usługi Event Hubs
  • Klonowanie projektu przykładowego
  • Konfigurowanie klastra platformy Kafka
  • Konfigurowanie narzędzia Kafka MirrorMaker
  • Uruchamianie narzędzia Kafka MirrorMaker

Wprowadzenie

W tym samouczku pokazano, jak Event Hub i narzędzie Kafka MirrorMaker mogą zintegrować istniejącą pipeline Kafka z platformą Azure przez "replikowanie" strumienia danych wejściowych Kafka w usłudze Event Hubs, co umożliwia integrację strumieni Apache Kafka przy użyciu kilku wzorców federacyjnych.

Punkt końcowy platformy Kafka usługi Azure Event Hubs umożliwia łączenie się z usługą Azure Event Hubs przy użyciu protokołu Kafka (czyli klientów platformy Kafka). Wprowadzając minimalne zmiany w aplikacji platformy Kafka, możesz nawiązać połączenie z usługą Azure Event Hubs i korzystać z zalet ekosystemu platformy Azure. Usługa Event Hubs obsługuje obecnie protokół platformy Apache Kafka w wersji 1.0 lub nowszej.

Narzędzie MirrorMaker 1 platformy Apache Kafka można używać jednokierunkowo z platformy Apache Kafka do usługi Event Hubs. MirrorMaker 2 może być używany w obu kierunkach, ale zarówno MirrorCheckpointConnectorMirrorHeartbeatConnector, które można skonfigurować w MirrorMaker 2, muszą wskazywać na brokera Apache Kafka, a nie na Event Hubs. W tym samouczku przedstawiono konfigurowanie narzędzia MirrorMaker 1.

Wymagania wstępne

Aby ukończyć kroki tego samouczka, upewnij się, że dysponujesz następującymi elementami:

  • Zapoznaj się z artykułem Usługa Event Hubs dla platformy Apache Kafka.
  • Subskrypcja Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
  • Zestaw do Rozwoju Javy (JDK) 1.7+
    • W systemie Ubuntu uruchom polecenie apt-get install default-jdk, aby zainstalować zestaw JDK.
    • Upewnij się, że zmienna środowiskowa JAVA_HOME wskazuje folder, w którym zainstalowano zestaw JDK.
  • Pobierz i zainstaluj archiwum binarnego Maven
    • W systemie Ubuntu możesz uruchomić polecenie apt-get install maven, aby zainstalować narzędzie Maven.
  • Usługa Git
    • W systemie Ubuntu możesz uruchomić polecenie sudo apt-get install git, aby zainstalować usługę Git.

Tworzenie przestrzeni nazw usługi Event Hubs

Do wysyłania i odbierania zdarzeń w usłudze Event Hubs wymagana jest odpowiednia przestrzeń nazw. Aby uzyskać instrukcje dotyczące tworzenia przestrzeni nazw i centrum zdarzeń, zobacz Tworzenie centrum zdarzeń. Pamiętaj, aby skopiować parametry połączenia usługi Event Hubs do późniejszego użycia.

Klonowanie projektu przykładowego

Teraz, gdy masz parametry połączenia usługi Event Hubs, sklonuj repozytorium Usługi Azure Event Hubs dla platformy Kafka i przejdź do podfolderumirror-maker:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker

Konfigurowanie klastra platformy Kafka

Skorzystaj z przewodnika Szybki start platformy Kafka, aby skonfigurować klaster z żądanymi ustawieniami (lub użyć istniejącego klastra platformy Kafka).

Konfigurowanie narzędzia Kafka MirrorMaker

Narzędzie Kafka MirrorMaker umożliwia "dublowanie" strumienia. Biorąc pod uwagę źródłowe i docelowe klastry platformy Kafka, funkcja MirrorMaker zapewnia, że wszystkie komunikaty wysyłane do klastra źródłowego i docelowego są odbierane zarówno przez klastry źródłowe, jak i docelowe. W tym przykładzie pokazano, jak odzwierciedlać źródłowy klaster Kafka w docelowym centrum zdarzeń. Ten scenariusz może służyć do wysyłania danych z istniejącego potoku Kafka do Event Hubs bez przerywania przepływu danych.

Aby uzyskać bardziej szczegółowe informacje na temat narzędzia Kafka MirrorMaker, zobacz przewodnik dotyczący replikacji/mirrorowania platformy Kafka.

Aby skonfigurować Kafka MirrorMaker, należy wskazać klaster Kafka jako jego odbiorcę/źródło oraz Event Hub jako jego producenta/miejsce docelowe.

Konfiguracja konsumenta

Zaktualizuj plik source-kafka.configkonfiguracji odbiorcy, który informuje mirrorMaker o właściwościach źródłowego klastra Kafka.

source-kafka.config
bootstrap.servers={SOURCE.KAFKA.IP.ADDRESS1}:{SOURCE.KAFKA.PORT1},{SOURCE.KAFKA.IP.ADDRESS2}:{SOURCE.KAFKA.PORT2},etc
group.id=example-mirrormaker-group
exclude.internal.topics=true
client.id=mirror_maker_consumer

Konfiguracja producenta

Teraz zaktualizuj plik konfiguracji producenta mirror-eventhub.config, który informuje MirrorMaker o wysyłaniu zduplikowanych (lub "mirrorowanych") danych do usługi Event Hubs. W szczególności zmień bootstrap.servers i sasl.jaas.config tak, aby wskazywały na punkt końcowy usługi Event Hubs Kafka. Usługa Event Hubs wymaga bezpiecznej komunikacji (SASL), która jest osiągana przez ustawienie trzech ostatnich właściwości w następującej konfiguracji:

mirror-eventhub.config
bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=mirror_maker_producer

#Required for Event Hubs
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Ważne

Zastąp {YOUR.EVENTHUBS.CONNECTION.STRING} łańcuchem połączenia dla przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące uzyskania ciągu połączenia, zobacz Uzyskiwanie ciągu połączenia usługi Event Hubs. Oto przykładowa konfiguracja: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Uruchamianie narzędzia Kafka MirrorMaker

Uruchom skrypt Kafka MirrorMaker z katalogu głównego platformy Kafka przy użyciu nowo zaktualizowanych plików konfiguracji. Pamiętaj, aby skopiować pliki konfiguracji do katalogu głównego platformy Kafka lub zaktualizować ich ścieżki w poniższym poleceniu.

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

Aby sprawdzić, czy zdarzenia docierają do centrum zdarzeń, zobacz statystyki ruchu przychodzącego w witrynie Azure Portal lub uruchom konsumenta względem centrum zdarzeń.

Po uruchomieniu narzędzia MirrorMaker wszystkie zdarzenia wysyłane do źródłowego klastra platformy Kafka są odbierane zarówno przez klaster Kafka, jak i dublowane centrum zdarzeń. Korzystając z narzędzia MirrorMaker i punktu końcowego Kafka usługi Event Hubs, można zrealizować implementację obecnego potoku Kafka do zarządzanej usługi Azure Event Hubs bez zmiany obecnego klastra lub przerywania jakiegokolwiek trwającego przepływu danych.

Przykłady

Zobacz następujące przykłady w witrynie GitHub:

Następne kroki

Aby dowiedzieć się więcej o usłudze Event Hubs dla platformy Kafka, zobacz następujące artykuły: