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 dublowania brokera platformy Kafka w usłudze Azure Event Hubs przy użyciu usługi 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 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.
  • Pobieranie i instalowanie 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

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.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 mirror-eventhub.configkonfiguracji 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:

Następne kroki

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