Replikowanie danych z klastra platformy Kafka do usługi Event Hubs przy użyciu usługi Apache Kafka Mirror Maker 2
W tym samouczku pokazano, jak replikować dane z istniejącego klastra platformy Kafka do usługi Azure Event Hubs przy użyciu usługi Mirror Maker 2.
Uwaga
Ten przykład jest dostępny w witrynie GitHub
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie przestrzeni nazw usługi Event Hubs
- Konfigurowanie istniejącego klastra platformy Kafka lub korzystanie z niego
- Konfigurowanie usługi Kafka Mirror Maker 2
- Uruchamianie narzędzia Kafka Mirror Maker 2
Wprowadzenie
Apache Kafka MirrorMaker 2.0 (MM2) został zaprojektowany tak, aby ułatwić dublowanie lub replikowanie tematów z jednego klastra Kafka do innego. Usługa Mirror Maker używa platformy Kafka Connect, aby uprościć konfigurację i skalowanie. Aby uzyskać bardziej szczegółowe informacje na temat narzędzia Kafka MirrorMaker, zobacz przewodnik Po dublowaniu/dublowaniu platformy Kafka.
Ponieważ usługa Azure Event Hubs jest zgodna z protokołem Apache Kafka, możesz użyć usługi Mirror Maker 2 do replikowania danych między istniejącym klastrem platformy Kafka i przestrzenią nazw usługi Event Hubs.
Usługa Mirror Maker 2 dynamicznie wykrywa zmiany tematów i zapewnia synchronizację właściwości tematu źródłowego i docelowego, w tym przesunięcia i partycji. Może służyć do replikowania danych dwukierunkowo między klastrem Kafka i przestrzenią nazw usługi Event Hubs.
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
- Dystrybucja platformy Apache Kafka
- Pobierz preferowaną dystrybucję platformy Apache Kafka (która powinna zawierać dystrybucję Mirror Maker 2).
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-2
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Konfigurowanie istniejącego klastra platformy Kafka lub korzystanie z niego
Jeśli nie masz istniejącego klastra platformy Kafka, skorzystaj z przewodnika Szybki start platformy Kafka, aby skonfigurować klaster Kafka z żądanymi ustawieniami (lub użyć istniejącego klastra platformy Kafka). Na potrzeby testowania można również utworzyć kilka tematów w nowo utworzonym klastrze platformy Kafka i opublikować w nich dane.
Jeśli masz już istniejący klaster Kafka w środowisku lokalnym lub w zarządzanej usłudze w chmurze kafka, możesz użyć go do replikowania istniejących danych do usługi Event Hubs.
Konfigurowanie usługi Kafka Mirror Maker 2
Dystrybucja platformy Apache Kafka zawiera connect-mirror-maker.sh
skrypt dołączony do biblioteki platformy Kafka, która implementuje rozproszony klaster Mirror Maker 2. Zarządza procesem roboczym Połącz wewnętrznie na podstawie pliku konfiguracji. Sterownik MirrorMaker wewnętrznie tworzy pary poszczególnych łączników i obsługuje je — MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector i MirrorHeartbeat Connector.
Aby skonfigurować usługę Mirror Maker 2 do replikowania danych, należy zaktualizować plik
kafka-to-eh-connect-mirror-maker.properties
konfiguracji usługi Mirror Maker 2, aby zdefiniować topologię replikacji.W pliku konfiguracji zdefiniuj
kafka-to-eh-connect-mirror-maker.properties
aliasy klastra, które mają być używane dla klastra kafka (źródła) i usługi Event Hubs (miejsce docelowe).# cluster aliases clusters = source, destination
Następnie określ informacje o połączeniu dla źródła, czyli klastra platformy Kafka.
source.bootstrap.servers = your-kafka-cluster-hostname:9092 #source.security.protocol=SASL_SSL #source.sasl.mechanism=PLAIN #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
Określ informacje o połączeniu dla miejsca docelowego, czyli utworzoną przestrzeń nazw usługi Event Hubs.
destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093 destination.security.protocol=SASL_SSL destination.sasl.mechanism=PLAIN destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
Włącz przepływ replikacji ze źródłowego klastra Platformy Kafka do docelowej przestrzeni nazw usługi Event Hubs.
source->destination.enabled = true source->destination.topics = .*
Zaktualizuj współczynnik replikacji tematów zdalnych i tematów wewnętrznych tworzonych przez usługę Mirror Maker w miejscu docelowym.
replication.factor=3 checkpoints.topic.replication.factor=3 heartbeats.topic.replication.factor=3 offset-syncs.topic.replication.factor=3 offset.storage.replication.factor=3 status.storage.replication.factor=3 config.storage.replication.factor=3
Następnie skopiuj
kafka-to-eh-connect-mirror-maker.properties
plik konfiguracji do katalogu konfiguracji dystrybucji platformy Kafka i można uruchomić skrypt Mirror Maker 2 przy użyciu następującego polecenia../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
Po pomyślnym wykonaniu skryptu powinny zostać wyświetlone tematy i zdarzenia platformy Kafka, które są replikowane do przestrzeni nazw usługi Event Hubs.
Aby sprawdzić, czy zdarzenia są wykonywane w usłudze Event Hubs z obsługą platformy Kafka, zapoznaj się ze statystykami ruchu przychodzącego w witrynie Azure Portal lub uruchom użytkownika względem usługi Event Hubs.
Przykłady
Zobacz następujące przykłady w witrynie GitHub:
Jeśli hostujesz platformę Apache Kafka na platformie Kubernetes przy użyciu operatora CNCF Strimzi, możesz użyć przykładu Strimzi Mirror Maker 2 dla usługi Event Hubs.
Następne kroki
Aby dowiedzieć się więcej o usłudze Event Hubs dla platformy Kafka, zobacz następujące artykuły: