Event Hubs ile Apache Kafka MirrorMaker kullanma

Bu öğreticide, Kafka MirrorMaker kullanarak bir Kafka aracısının Azure Olay Hub 'ına nasıl yansıtılması gösterilmektedir. CNCF Strimzi işlecini kullanarak Kubernetes üzerinde Apache Kafka barındırıyorsanız, Kafka 'i Strimzi ve yansıtma Oluşturucu 2 ile ayarlamayı öğrenmek için Bu blog gönderisindeki öğreticiye başvurabilirsiniz.

Event Hubs ile Kafka MirrorMaker

Not

Bu örnek GitHub kullanılabilir

Not

Bu makalede, Microsoft tarafından kullanılmayan bir terim olan beyaz liste teriminin başvuruları yer almaktadır. Terim yazılımlardan 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ır

Giriş

Bu öğreticide, bir olay hub 'ı ve Kafka MirrorMaker 'ın mevcut bir Kafka işlem hattını Event Hubs Azure 'da nasıl tümleştirebileceği gösterilmektedir. Bu, çeşitli Federasyon desenlerikullanılarak Apache Kafka akışlarının tümleştirilmesine olanak tanır.

Azure Event Hubs Kafka uç noktası, Azure Event Hubs 'a Kafka protokolünü (yani, Kafka istemcileri) kullanarak bağlanmanızı sağlar. Bir Kafka uygulamasında en az değişiklik yaparak Azure Event Hubs bağlanabilir ve Azure ekosisteminin avantajlarından yararlanabilirsiniz. Event Hubs Şu anda 1,0 ve üzeri Apache Kafka sürümlerinin protokolünü desteklemektedir.

Apache Kafka MirrorMaker 1 Tekli biçimde Apache Kafka Event Hubs için kullanabilirsiniz. MirrorMaker 2 her iki yönde de kullanılabilir, ancak MirrorCheckpointConnector MirrorHeartbeatConnector mirrormaker 2 ' de yapılandırılabilir olan ve Apache Kafka aracısına işaret eden ve Event Hubs için yapılandırılmış olmalıdır. Bu öğreticide, MirrorMaker 1 yapılandırması 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. bir Olay Hub 'ı oluşturma . Event Hubs bağlantı dizesini daha sonra kullanmak üzere kopyalamadığınızdan emin olun.

Örnek projeyi kopyalama

Artık Event Hubs bir bağlantı dizeniz olduğuna göre, Azure Event Hubs for Kafka Repository 'yi klonlayın ve mirror-maker alt klasöre 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 var olan bir Kafka kümesini kullanın).

Kafka MirrorMaker 'ı yapılandırma

Kafka MirrorMaker bir akışın "yansıtmasını" sunar. 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, kaynak Kafka kümesinin hedef olay hub 'ı ile nasıl yansıtılması gösterilmektedir. Bu senaryo, verilerin akışını kesintiye uğramadan mevcut bir Kafka işlem hattından Event Hubs veri göndermek için kullanılabilir.

Kafka MirrorMaker hakkında daha ayrıntılı bilgi için bkz. Kafka yansıtma/MirrorMaker Kılavuzu.

Kafka MirrorMaker 'ı yapılandırmak için BT 'nin BT/kaynak olarak bir Kafka kümesi ve üreticisi/hedefi olarak bir olay hub 'ı sağlayın.

Tüketici yapılandırması

source-kafka.configMirrorMaker 'ın kaynak Kafka kümesinin özelliklerine söylemiş olan tüketici yapılandırma dosyasını gü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 mirror-eventhub.config , MirrorMaker 'ın yinelenen (veya "yansıtmalı") verileri Event Hubs hizmetine göndermesini söyleyen üretici yapılandırma dosyasını güncelleştirin. Özellikle, bootstrap.servers sasl.jaas.config Event Hubs Kafka uç noktanızı işaret edin. Event Hubs hizmeti, aşağıdaki yapılandırmadaki 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

{YOUR.EVENTHUBS.CONNECTION.STRING}Event Hubs ad alanınız için bağlantı dizesiyle değiştirin. Bağlantı dizesini alma hakkında yönergeler için bkz. Event Hubs bağlantı dizesi alma. Örnek bir yapılandırma aşağıda 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ır

Yeni güncelleştirilmiş yapılandırma dosyalarını kullanarak kök Kafka dizininden Kafka MirrorMaker betiğini çalıştırın. Yapılandırma dosyalarını kök Kafka dizinine kopyalamaya ya da aşağıdaki komutta yollarını güncelleştirdiğinizden 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şmakta olduğunu doğrulamak için Azure Portalgiriş istatistiklerine bakın veya Olay Hub 'ına karşı bir tüketici çalıştırın.

MirrorMaker çalıştıran, 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 bir Event Hubs Kafka uç noktası kullanarak, var olan kümeyi değiştirmeden veya devam eden herhangi bir veri akışını kesintiye uğratmadan mevcut bir Kafka işlem hattını yönetilen Azure Event Hubs hizmetine geçirebilirsiniz.

Örnekler

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

Sonraki adımlar

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