Použití Akka Streams se službou Event Hubs pro Apache Kafka
V tomto kurzu se ukáže, jak připojit Akka Toky prostřednictvím podpory Event Hubs pro Apache Kafka beze změny klientů protokolů nebo spouštění vlastních clusterů.
V tomto kurzu se naučíte:
- Vytvoření oboru názvů služby Event Hubs
- Naklonování ukázkového projektu
- Spuštění producenta Toky Akka
- Spuštění Akka Toky konzumenta
Poznámka
Tato ukázka je k dispozici na GitHub
Požadavky
K dokončení tohoto kurzu se ujistěte, že splňujete následující požadavky:
- Přečtěte si článek Event Hubs pro Apache Kafka.
- Předplatné Azure. Pokud ho nemáte, než začnete, vytvořte si bezplatný účet.
- Java Development Kit (JDK) 1.8+
- Na Ubuntu nainstalujte sadu JDK spuštěním příkazu
apt-get install default-jdk. - Nezapomeňte nastavit proměnnou prostředí JAVA_HOME tak, aby odkazovala na složku, ve které je sada JDK nainstalovaná.
- Na Ubuntu nainstalujte sadu JDK spuštěním příkazu
- Stažení a instalace binárního archivu Mavenu
- Na Ubuntu můžete Maven nainstalovat spuštěním příkazu
apt-get install maven.
- Na Ubuntu můžete Maven nainstalovat spuštěním příkazu
- Git
- Na Ubuntu můžete Git nainstalovat spuštěním příkazu
sudo apt-get install git.
- Na Ubuntu můžete Git nainstalovat spuštěním příkazu
Vytvoření oboru názvů služby Event Hubs
K Event Hubs nebo příjmu z jakékoli služby Event Hubs obor názvů služby. Podrobné informace najdete v tématu Vytvoření centra událostí. Nezapomeňte zkopírovat připojovací Event Hubs pro pozdější použití.
Naklonování ukázkového projektu
Teď, když máte Event Hubs připojovací řetězec, naklonujte Azure Event Hubs pro úložiště Kafka a přejděte do akka podsložky :
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/akka/java
Spuštění producenta Toky Akka
Pomocí poskytnutého příkladu Toky Akka odešlete zprávy do Event Hubs služby.
Poskytnutí koncového Event Hubs Kafka
Producer application.conf
Aktualizujte hodnoty a v , aby producenta nasměroval do bootstrap.servers sasl.jaas.config producer/src/main/resources/application.conf koncového bodu Event Hubs Kafka se správným ověřováním.
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}\";"
}
}
Důležité
Nahraďte {YOUR.EVENTHUBS.CONNECTION.STRING} připojovacím řetězcem pro váš Event Hubs názvů. Pokyny k získání připojovacího řetězce najdete v tématu Získání Event Hubs připojovacího řetězce. Tady je příklad konfigurace: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Spuštění producenta z příkazového řádku
Pokud chcete spustit producenta z příkazového řádku, vygenerování souboru JAR a jeho spuštění z Mavenu (nebo vygenerování souboru JAR pomocí Mavenu a jeho spuštění v Javě přidáním potřebných souborů JAR Kafka do cesty ke třídě):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestProducer"
Producent začne odesílat události do centra událostí v tématu test a vytiskne události do stdout.
Spuštění Akka Toky konzumenta
Pomocí poskytnutého příkladu příjemce můžete přijímat zprávy z centra událostí.
Poskytnutí koncového Event Hubs Kafka
Consumer application.conf
Aktualizujte hodnoty a v , aby se příjemce nasměroval bootstrap.servers sasl.jaas.config Event Hubs koncový bod consumer/src/main/resources/application.conf Kafka se správným ověřováním.
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}\";"
}
}
Důležité
Nahraďte {YOUR.EVENTHUBS.CONNECTION.STRING} připojovacím řetězcem pro váš Event Hubs názvů. Pokyny k získání připojovacího řetězce najdete v tématu Získání Event Hubs připojovacího řetězce. Tady je příklad konfigurace: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Spuštění příjemce z příkazového řádku
Pokud chcete konzumenta spustit z příkazového řádku, vygenerování souboru JAR a jeho spuštění z Mavenu (nebo vygenerování souboru JAR pomocí Mavenu a jeho spuštění v Javě přidáním potřebných souborů JAR Kafka do cesty ke třídě):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestConsumer"
Pokud má centrum událostí události (například pokud je spuštěný i váš producent), příjemce začne přijímat události z tématu test .
Podrobnější informace o Akka Toky najdete v příručce Akka Toky.
Další kroky
Další informace o Event Hubs pro Kafka najdete v následujících článcích: