Apache Kafka Mirror Maker 1'i kullanarak kafka kümesindeki verileri Event Hubs'a çoğaltma

Bu öğreticide, Kafka Mirror Maker 1 kullanılarak kafka aracısını bir Azure Event Hubs yansıtma gösterilmektedir.

Event Hubs ile Kafka MirrorMaker

Not

Bu örnek GitHub'da kullanılabilir

Not

Bu makale, Microsoft'un artık kullanmadığını belirten bir terime başvurular içerir. Terim yazılımdan kaldırıldığında, bu makaleden kaldıracağız.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Event Hubs ad alanı oluşturma
  • Örnek projeyi kopyalama
  • Kafka kümesi ayarlama
  • Kafka MirrorMaker'ı yapılandırma
  • Kafka MirrorMaker'ı çalıştırma

Giriş

Bu öğreticide, bir olay hub'ı ve Kafka MirrorMaker'ın Event Hubs hizmetindeki Kafka giriş akışını "yansıtarak" mevcut bir Kafka işlem hattını Azure'a nasıl tümleştirebileceği gösterilmektedir ve bu da Apache Kafka akışlarının çeşitli federasyon desenleri kullanılarak tümleştirilmesine olanak tanır.

Azure Event Hubs Kafka uç noktası, Kafka protokollerini (yani Kafka istemcilerini) kullanarak Azure Event Hubs bağlanmanızı sağlar. Kafka uygulamasında çok az değişiklik yaparak Azure Event Hubs bağlanabilir ve Azure ekosisteminin avantajlarından yararlanabilirsiniz. Event Hubs şu anda Apache Kafka 1.0 ve sonraki sürümlerin protokollerini desteklemektedir.

Apache Kafka'nın MirrorMaker 1'ini Apache Kafka'dan Event Hubs'a tek yönlü olarak kullanabilirsiniz. MirrorMaker 2 her iki yönde de kullanılabilir, ancak MirrorCheckpointConnector MirrorMaker 2'de yapılandırılabilen ve MirrorHeartbeatConnector değerlerinin her ikisi de Event Hubs'a değil Apache Kafka aracısına işaret eden şekilde yapılandırılmalıdır. Bu öğreticide MirrorMaker 1'in yapılandırılması gösterilmektedir.

Önkoşullar

Bu öğreticiyi tamamlamak için şunlar sahip olduğunuzdan emin olun:

  • Apache Kafka için Event Hubs makalesini okuyun.
  • Azure aboneliği. Aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
  • Java Development Kit (JDK) 1.7+
    • Ubuntu’da JDK’yi yüklemek için apt-get install default-jdk komutunu çalıştırın.
    • JAVA_HOME ortam değişkenini JDK’nin yüklü olduğu klasöre işaret edecek şekilde ayarladığınızdan emin olun.
  • Maven ikili arşivi indirme ve yükleme
    • Ubuntu’da Maven’i yüklemek için apt-get install maven komutunu çalıştırabilirsiniz.
  • Git
    • Ubuntu’da Git’i yüklemek için sudo apt-get install git komutunu çalıştırabilirsiniz.

Event Hubs ad alanı oluşturma

Herhangi bir Event Hubs hizmetinden göndermek ve almak için Event Hubs ad alanı gereklidir. Ad alanı ve olay hub'ı oluşturma yönergeleri için bkz. Olay hub'ı oluşturma. Event Hubs bağlantı dizesini daha sonra kullanmak üzere kopyaladığınızdan emin olun.

Örnek projeyi kopyalama

Artık bir Event Hubs bağlantı dizeniz olduğuna göre Kafka deposu için Azure Event Hubs kopyalayın ve alt klasöre mirror-maker gidin:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker

Kafka kümesi ayarlama

İstenen ayarlarla bir küme ayarlamak için Kafka hızlı başlangıç kılavuzunu kullanın (veya mevcut bir Kafka kümesini kullanın).

Kafka MirrorMaker'ı yapılandırma

Kafka MirrorMaker bir akışın "yansıtmasını" sağlar. Kaynak ve hedef Kafka kümeleri verildiğinde MirrorMaker, kaynak kümeye gönderilen tüm iletilerin hem kaynak hem de hedef kümeler tarafından alınmasını sağlar. Bu örnekte bir kaynak Kafka kümesinin hedef olay hub'ı ile nasıl yansıtılması gösterilmektedir. Bu senaryo, veri akışını kesintiye uğratmadan mevcut bir Kafka işlem hattından Event Hubs'a veri göndermek için kullanılabilir.

Kafka MirrorMaker hakkında daha ayrıntılı bilgi için bkz. Kafka Mirroring/MirrorMaker kılavuzu.

Kafka MirrorMaker'ı yapılandırmak için, buna tüketici/kaynak olarak bir Kafka kümesi ve üreticisi/hedefi olarak bir olay hub'ı verin.

Tüketici yapılandırması

MirrorMaker'a kaynak Kafka kümesinin özelliklerini bildiren tüketici yapılandırma dosyasını source-kafka.configgüncelleştirin.

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

Üretici yapılandırması

Şimdi MirrorMaker'a yinelenen (veya "yansıtılmış") verileri Event Hubs hizmetine göndermesini söyleyen üretici yapılandırma dosyasını mirror-eventhub.configgüncelleştirin. Özellikle, ve sasl.jaas.config değerlerini Event Hubs Kafka uç noktanıza işaret etmek için değiştirinbootstrap.servers. Event Hubs hizmeti, aşağıdaki yapılandırmada son üç özellik ayarlanarak elde edilen güvenli (SASL) iletişim gerektirir:

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}";

Önemli

değerini Event Hubs ad alanınızın bağlantı dizesiyle değiştirin {YOUR.EVENTHUBS.CONNECTION.STRING} . Bağlantı dizesini alma yönergeleri için bkz . Event Hubs bağlantı dizesi alma. Aşağıda örnek bir yapılandırma verilmiştir: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Kafka MirrorMaker'ı çalıştırma

Yeni güncelleştirilen yapılandırma dosyalarını kullanarak kök Kafka dizininden Kafka MirrorMaker betiğini çalıştırın. Aşağıdaki komutta yapılandırma dosyalarını kök Kafka dizinine kopyaladığınızdan veya yollarını güncelleştirdiğinden emin olun.

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

Olayların olay hub'ına ulaştığını doğrulamak için Azure portal giriş istatistiklerine bakın veya olay hub'ında bir tüketici çalıştırın.

MirrorMaker çalışırken, kaynak Kafka kümesine gönderilen tüm olaylar hem Kafka kümesi hem de yansıtılmış olay hub'ı tarafından alınır. MirrorMaker ve Event Hubs Kafka uç noktasını kullanarak, mevcut kümeyi değiştirmeden veya devam eden veri akışını kesintiye uğratmadan mevcut bir Kafka işlem hattını yönetilen Azure Event Hubs hizmetine geçirebilirsiniz.

Örnekler

GitHub'da aşağıdaki örneklere bakın:

Sonraki adımlar

Kafka için Event Hubs hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: