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 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.

Obraz przedstawiający przepływ zdarzeń z platformy Kafka MirrorMaker do usługi Event Hubs.

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:

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.

  1. 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.

  2. 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
    
  3. 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>;
    
  4. 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.>';
    
  5. 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 = .*
    
  6. 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
    
  7. 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
    
  8. 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.

  9. 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:

Następne kroki

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