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, aniž byste museli měnit klienty protokolu nebo spouštět vlastní clustery.

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í příjemce Akka Streams

Poznámka

Tato ukázka je dostupná na GitHubu.

Požadavky

Abyste mohli absolvovat tento kurz, ujistěte se, ž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á.
  • Stažení a instalace binárního archivu Maven
    • Na Ubuntu můžete Maven nainstalovat spuštěním příkazu apt-get install maven.
  • Git
    • Na Ubuntu můžete Git nainstalovat spuštěním příkazu sudo apt-get install git.

Vytvoření oboru názvů služby Event Hubs

K odesílání nebo příjmu z jakékoli služby Event Hubs se vyžaduje obor názvů služby Event Hubs. Podrobné informace najdete v tématu Vytvoření centra událostí . Nezapomeňte zkopírovat připojovací řetězec služby Event Hubs pro pozdější použití.

Naklonování ukázkového projektu

Teď, když máte připojovací řetězec služby Event Hubs, naklonujte Azure Event Hubs pro úložiště Kafka a přejděte do podsložkyakka:

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 můžete odesílat zprávy do služby Event Hubs.

Poskytnutí koncového bodu Kafka služby Event Hubs

Producent application.conf

bootstrap.servers Aktualizujte hodnoty a sasl.jaas.config v producer/src/main/resources/application.conf souboru a 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ím řetězcem pro váš obor názvů služby Event Hubs. Pokyny k získání připojovacího řetězce najdete v tématu Získání připojovacího řetězce 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 ho vygenerujte pomocí Mavenu a pak spusťte 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 testa vytiskne je do výstupu stdout.

Spuštění příjemce Akka Streams

Pomocí uvedeného příkladu příjemce můžete přijímat zprávy z centra událostí.

Poskytnutí koncového bodu Kafka služby Event Hubs

Consumer application.conf

bootstrap.servers Aktualizujte hodnoty a sasl.jaas.config v consumer/src/main/resources/application.conf souboru a nasměrujte příjemce na koncový bod Kafka služby Event Hubs 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áš obor názvů služby Event Hubs. Pokyny k získání připojovacího řetězce najdete v tématu Získání připojovacího řetězce 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 příjemce spustit z příkazového řádku, vygenerujte soubor JAR a pak ho spusťte z Mavenu (nebo ho vygenerujte pomocí Mavenu a pak spusťte 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 centrum událostí obsahuje 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 Streams najdete v příručce Akka Streams Kafka .

Další kroky

Další informace o službě Event Hubs pro Kafka najdete v následujících článcích: