Sdílet prostřednictvím


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á.
  • 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.
  • 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

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 testa 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: