Apache Kafka için Event Hubs ile Akka Streams’i kullanma
bu öğreticide, protokol istemcilerinizi değiştirmeden veya kendi kümelerinizi çalıştırmadan Apache Kafka için Event Hubs desteği aracılığıyla akka Akışlar bağlama gösterilmektedir.
Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:
- Event Hubs ad alanı oluşturma
- Örnek projeyi kopyalama
- akka Akışlar üreticisi çalıştırma
- akka Akışlar tüketicisi çalıştır
Not
Bu örnek GitHub kullanılabilir
Önkoşullar
Bu öğreticiyi tamamlayabilmeniz için aşağıdaki önkoşullara 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.8+
- Ubuntu’da JDK’yi yüklemek için
apt-get install default-jdkkomutunu ç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.
- Ubuntu’da JDK’yi yüklemek için
- Maven ikili Arşivi indirme ve yükleme
- Ubuntu’da Maven’i yüklemek için
apt-get install mavenkomutunu çalıştırabilirsiniz.
- Ubuntu’da Maven’i yüklemek için
- Git
- Ubuntu’da Git’i yüklemek için
sudo apt-get install gitkomutunu çalıştırabilirsiniz.
- Ubuntu’da Git’i yüklemek için
Event Hubs ad alanı oluşturma
Herhangi bir Event Hubs hizmetinden göndermek veya almak için bir Event Hubs ad alanı gerekir. Ayrıntılı bilgi için bkz. 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ı dizesine sahip olduğunuza göre, Azure Event Hubs for Kafka Repository 'yi klonlayın ve akka alt klasöre gidin:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/akka/java
akka Akışlar üreticisi çalıştırma
sunulan akka Akışlar producer örneğini kullanarak, Event Hubs hizmetine ileti gönderin.
Event Hubs Kafka uç noktası sağlama
Producer Application. conf
bootstrap.servers sasl.jaas.config Üretici ve değerlerini, producer/src/main/resources/application.conf doğru kimlik doğrulamasıyla, üreticiyi Event Hubs Kafka uç noktasına yönlendirmek için güncelleştirin.
akka.kafka.producer {
#Akka Kafka producer properties can be defined here
# Properties defined by org.apache.kafka.clients.producer.ProducerConfig
# can be defined in this configuration section.
kafka-clients {
bootstrap.servers="{YOUR.EVENTHUBS.FQDN}:9093"
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";
Üretici 'yi komut satırından Çalıştır
Producer 'ı komut satırından çalıştırmak için, JAR 'yi oluşturun ve Maven içinden çalıştırın (veya Maven kullanarak JAR 'yi oluşturun ve ardından, gerekli Kafka JAR 'leri, Sınıfyoluna ekleyerek Java 'da çalıştırın):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestProducer"
Üretici, konuya Olay Hub 'ına olay göndermeye başlar test ve olayları stdout 'a yazdırır.
akka Akışlar tüketicisi çalıştır
Belirtilen tüketici örneğini kullanarak Olay Hub 'ından ileti alın.
Event Hubs Kafka uç noktası sağlama
Tüketici uygulaması. conf
bootstrap.servers' İ ve sasl.jaas.config değerlerini, consumer/src/main/resources/application.conf doğru kimlik doğrulamasıyla tüketicisini Event Hubs Kafka uç noktasına yönlendirmek için güncelleştirin.
akka.kafka.consumer {
#Akka Kafka consumer properties defined here
wakeup-timeout=60s
# Properties defined by org.apache.kafka.clients.consumer.ConsumerConfig
# defined in this configuration section.
kafka-clients {
request.timeout.ms=60000
group.id=akka-example-consumer
bootstrap.servers="{YOUR.EVENTHUBS.FQDN}:9093"
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";
Komut satırından tüketici çalıştırma
Tüketici 'yi komut satırından çalıştırmak için, JAR 'yi oluşturun ve Maven içinden çalıştırın (veya Maven kullanarak JAR 'yi oluşturun ve ardından, gerekli Kafka JAR 'leri, Sınıfyoluna ekleyerek Java 'da çalıştırın):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestConsumer"
Olay Hub 'ının olayları varsa (örneğin, üreticisi de çalışıyorsa), tüketici konusunun olayları almaya başlar test .
akka Akışlar hakkında daha ayrıntılı bilgi için, akka Akışlar Kafka kılavuzuna göz atın.
Sonraki adımlar
Kafka için Event Hubs hakkında daha fazla bilgi için aşağıdaki makalelere bakın: