Az Akka Streams használata az Apache Kafkához készült Event Hubs szolgáltatással

Ez az oktatóanyag bemutatja, hogyan csatlakoztathatja az Akka Streamset az Apache Kafka Event Hubs-támogatásán keresztül anélkül, hogy módosítaná a protokollügyfeleket vagy saját fürtöket futtat.

Eben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Event Hubs-névtér létrehozása
  • A példaprojekt klónozása
  • Az Akka Streams-előállító futtatása
  • Az Akka Streams-felhasználó futtatása

Megjegyzés

Ez a minta elérhető a GitHubon.

Előfeltételek

Az oktatóanyag elvégzéséhez győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:

  • Olvassa át az Apache Kafkához készült Event Hubsot ismertető cikket.
  • Azure-előfizetés. Ha még nincs előfizetése, hozzon létre egy ingyenes fiókot, mielőtt hozzákezd.
  • Java fejlesztői készlet (JDK) 1.8+
    • Ubuntu rendszeren futtassa az apt-get install default-jdk parancsot a JDK telepítéséhez.
    • Ügyeljen arra, hogy a JAVA_HOME környezeti változó arra a mappára mutasson, ahová a JDK telepítve lett.
  • Maven bináris archívum letöltése és telepítése
    • Ubuntu rendszeren futtathatja az apt-get install maven parancsot a Maven telepítéséhez.
  • Git
    • Ubuntu rendszeren futtathatja a sudo apt-get install git parancsot a Git telepítéséhez.

Event Hubs-névtér létrehozása

Egy Event Hubs-névtérre van szükség bármely Event Hubs-szolgáltatás küldéséhez vagy fogadásához. Részletes információkért lásd: Eseményközpont létrehozása . Ügyeljen arra, hogy az Event Hubs kapcsolati sztring későbbi használatra másolja.

A példaprojekt klónozása

Most, hogy már rendelkezik Event Hubs-kapcsolati sztring, klónozza a Kafka-adattár Azure Event Hubs, és keresse meg az akka almappát:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/akka/java

Az Akka Streams-előállító futtatása

A megadott Akka Streams-előállítói példa használatával küldjön üzeneteket az Event Hubs szolgáltatásnak.

Event Hubs Kafka-végpont megadása

Producer application.conf

Frissítse a és sasl.jaas.config az bootstrap.servers értékeket, producer/src/main/resources/application.conf hogy a gyártót a megfelelő hitelesítéssel az Event Hubs Kafka-végpontra irányítsa.

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}\";"
    }
}

Fontos

Cserélje le a elemet {YOUR.EVENTHUBS.CONNECTION.STRING} az Event Hubs-névtér kapcsolati sztring. A kapcsolati sztring beszerzésére vonatkozó útmutatásért lásd: Event Hubs-kapcsolati sztring beszerzése. Íme egy példa konfigurációra: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Gyártó futtatása a parancssorból

A gyártó parancssorból való futtatásához hozza létre a JAR-t, majd futtassa a Mavenből (vagy hozza létre a JAR-t a Maven használatával, majd futtassa a Java-ban a szükséges Kafka JAR(ok) hozzáadásával az osztályútvonalon):

mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestProducer"

A gyártó elkezd eseményeket küldeni az eseményközpontba a témakörben test, és kinyomtatja az eseményeket a stdoutnak.

Az Akka Streams-felhasználó futtatása

A megadott fogyasztói példa használatával üzeneteket fogadhat az eseményközpontból.

Event Hubs Kafka-végpont megadása

Consumer application.conf

Frissítse a és sasl.jaas.config az bootstrap.servers értékeket, consumer/src/main/resources/application.conf hogy a fogyasztót a megfelelő hitelesítéssel az Event Hubs Kafka-végpontra irányítsa.

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}\";"
    }
}

Fontos

Cserélje le a elemet {YOUR.EVENTHUBS.CONNECTION.STRING} az Event Hubs-névtér kapcsolati sztring. A kapcsolati sztring beszerzésére vonatkozó útmutatásért lásd: Event Hubs-kapcsolati sztring beszerzése. Íme egy példa konfigurációra: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Fogyasztó futtatása a parancssorból

A fogyasztó parancssorból való futtatásához hozza létre a JAR-t, majd futtassa a Mavenen belül (vagy hozza létre a JAR-t a Maven használatával, majd futtassa a Java-ban a szükséges Kafka JAR(ok) hozzáadásával az osztályútvonalon):

mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestConsumer"

Ha az eseményközpont eseményekkel rendelkezik (például ha az előállítója is fut), akkor a fogyasztó megkezdi az események fogadását a témakörből test.

Tekintse meg az Akka Streams Kafka-útmutatót , amely részletesebb információkat tartalmaz az Akka Streams szolgáltatásról.

Következő lépések

Ha többet szeretne megtudni a Kafkához készült Event Hubsról, tekintse meg az alábbi cikkeket: