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

W tym samouczku pokazano, jak dublować brokera platformy Kafka w 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.

Ten samouczek zawiera informacje na temat wykonywania następujących 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 wejściowego 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 Azure Event Hubs umożliwia nawiązywanie połączenia z 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 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.

Można używać dublowania dublowania platformy Apache Kafka 1 jednokierunkowo z platformy Apache Kafka do usługi Event Hubs. Narzędzie MirrorMaker 2 może być używane w obu kierunkach, ale MirrorCheckpointConnectorMirrorHeartbeatConnector i które można skonfigurować w usłudze 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 platformy Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
  • 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 narzędzia 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. Zobacz Tworzenie centrum zdarzeń, aby uzyskać instrukcje dotyczące tworzenia przestrzeni nazw i 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 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 Kafka, usługa MirrorMaker zapewnia, że wszystkie komunikaty wysyłane do klastra źródłowego 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, nadaj 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 platformy 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ń i bootstrap.serverssasl.jaas.config wskaż punkt końcowy platformy Kafka usługi Event Hubs. Usługa Event Hubs wymaga bezpiecznej komunikacji (SASL), która jest osiągana przez ustawienie ostatnich trzech 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} ciąg parametrami połączenia dla przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące pobierania parametrów połączenia, zobacz Pobieranie parametrów 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 Platformy 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 Azure Portal lub uruchom konsumenta względem centrum zdarzeń.

Po uruchomieniu narzędzia MirrorMaker wszystkie zdarzenia wysyłane do źródłowego klastra 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, można przeprowadzić migrację istniejącego potoku platformy Kafka do zarządzanej usługi Azure Event Hubs bez zmiany istniejącego klastra lub przerwania bieżącego przepływu danych.

Przykłady

Zapoznaj się z następującymi przykładami 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: