Použití Akka Streams se službou Event Hubs pro Apache Kafka
V tomto kurzu se dozvíte, jak připojit Akka Streams prostřednictvím podpory služby Event Hubs pro Apache Kafka beze změny klientů protokolu 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 Akka Streams
- Spuštění uživatele Akka Streams
Poznámka:
Tato ukázka je k dispozici na GitHubu.
Požadavky
K dokončení tohoto kurzu se ujistěte, že máte následující požadavky:
- Přečtěte si článek Event Hubs pro Apache Kafka.
- Předplatné Azure. Pokud ho nemáte, vytvořte si bezplatný účet před tím, než začnete.
- 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
Obor názvů služby Event Hubs se vyžaduje k odesílání a přijímání z jakékoli služby Event Hubs. Podrobné informace najdete v tématu Vytvoření centra událostí. Nezapomeňte zkopírovat službu Event Hubs připojovací řetězec pro pozdější použití.
Naklonování ukázkového projektu
Teď, když máte službu Event Hubs připojovací řetězec, naklonujte službu 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 Akka Streams
Pomocí poskytnutého příkladu producenta Akka Streams odešlete zprávy do služby Event Hubs.
Poskytnutí koncového bodu Event Hubs Kafka
Producer application.conf
bootstrap.servers
Aktualizujte hodnoty a sasl.jaas.config
producer/src/main/resources/application.conf
nasměrujte producenta na koncový bod 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í řetězec pro obor názvů služby Event Hubs. Pokyny k získání připojovací řetězec najdete v tématu Získání připojovací řetězec služby Event Hubs. 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, vygenerujte soubor JAR a pak ho spusťte z Mavenu (nebo vygenerujte soubor JAR pomocí Mavenu a pak spusťte v Javě přidáním potřebných souborů Java Archive (JARs) 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í uživatele Akka Streams
Pomocí poskytnutého příkladu příjemce můžete přijímat zprávy z centra událostí.
Poskytnutí koncového bodu Event Hubs Kafka
Consumer application.conf
bootstrap.servers
Aktualizujte hodnoty a sasl.jaas.config
consumer/src/main/resources/application.conf
nasměrujte příjemce na koncový bod Event Hubs 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í řetězec pro obor názvů služby Event Hubs. Pokyny k získání připojovací řetězec najdete v tématu Získání připojovací řetězec služby Event Hubs. 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 spustit příjemce z příkazového řádku, vygenerujte soubor JAR a pak ho spusťte v rámci Mavenu (nebo vygenerujte soubor JAR pomocí Mavenu a pak ho spusťte v Javě přidáním potřebných 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ý váš producent), začne příjemce přijímat události z tématu test
.
Podrobnější informace o Akka Streams Streams najdete v příručce Akka Streams.
Další kroky
Další informace o službě Event Hubs pro Kafka najdete v následujících článcích: