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 dublowania brokera platformy Kafka w usłudze Azure Event Hubs przy użyciu usługi Kafka Mirror Maker 1.
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 centrum zdarzeń i narzędzie Kafka MirrorMaker mogą zintegrować istniejący potok platformy Kafka z platformą Azure przez "dublowanie" strumienia danych wejściowych platformy Kafka w usłudze Event Hubs, co umożliwia integrację strumieni platformy 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 MirrorCheckpointConnector
MirrorHeartbeatConnector
i które można skonfigurować w dublatorze MirrorMaker 2 , muszą być skonfigurowane tak, aby wskazywały brokera platformy Apache Kafka, a nie do usługi 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 Java Development Kit (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.
- W systemie Ubuntu uruchom polecenie
- Pobieranie i instalowanie archiwum binarnego maven
- W systemie Ubuntu możesz uruchomić polecenie
apt-get install maven
, aby zainstalować narzędzie Maven.
- W systemie Ubuntu możesz uruchomić polecenie
- Usługa Git
- W systemie Ubuntu możesz uruchomić polecenie
sudo apt-get install git
, aby zainstalować usługę Git.
- W systemie Ubuntu możesz uruchomić polecenie
Tworzenie przestrzeni nazw usługi Event Hubs
Przestrzeń nazw usługi Event Hubs jest wymagana do wysyłania i odbierania zdarzeń z dowolnej usługi Event Hubs. 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 dublować źródłowy klaster Kafka z docelowym centrum zdarzeń. Ten scenariusz może służyć do wysyłania danych z istniejącego potoku platformy Kafka do usługi Event Hubs bez przerywania przepływu danych.
Aby uzyskać bardziej szczegółowe informacje na temat narzędzia Kafka MirrorMaker, zobacz przewodnik Po dublowaniu/dublowaniu platformy Kafka.
Aby skonfigurować narzędzie Kafka MirrorMaker, należy nadać mu klaster Platformy Kafka jako jego odbiorcę/źródło i centrum zdarzeń jako jego producent/miejsce docelowe.
Konfiguracja odbiorcy
Zaktualizuj plik source-kafka.config
konfiguracji 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 mirror-eventhub.config
konfiguracji producenta , który informuje MirrorMaker o wysłaniu zduplikowanych (lub "dublowanych") danych do usługi Event Hubs. W szczególności zmień bootstrap.servers
punkt końcowy platformy Kafka usługi Event Hubs i sasl.jaas.config
wskaż go. 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}
element parametry połączenia przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące uzyskiwania parametry połączenia, zobacz Pobieranie parametry 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 platformy Kafka usługi Event Hubs usługi Event Hubs, można przeprowadzić migrację istniejącego potoku platformy Kafka do zarządzanej usługi Azure Event Hubs bez zmiany istniejącego klastra lub przerwania dowolnego trwającego przepływu danych.
Przykłady
Zobacz następujące przykłady w witrynie GitHub:
- Przykładowy kod dla tego samouczka w usłudze GitHub
- Usługa Azure Event Hubs Kafka MirrorMaker uruchomiona w wystąpieniu kontenera platformy Azure
Następne kroki
Aby dowiedzieć się więcej o usłudze Event Hubs dla platformy Kafka, zobacz następujące artykuły:
- Łączenie platformy Apache Spark z centrum zdarzeń
- Łączenie narzędzia Apache Flink z centrum zdarzeń
- Integrowanie platformy Kafka Connect z centrum zdarzeń
- Eksplorowanie przykładów w witrynie GitHub
- Łączenie usługi Akka Streams z centrum zdarzeń
- Przewodnik dla deweloperów platformy Apache Kafka dotyczący usługi Azure Event Hubs