Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du ansluter Akka Streams via Event Hubs-stödet för Apache Kafka utan att ändra dina protokollklienter eller köra egna kluster.
I den här självstudien lär du dig att:
- Skapa ett Event Hubs-namnområde
- Klona exempelprojektet
- Kör Akka Streams-producent
- Köra Akka Streams-konsument
Kommentar
Det här exemplet finns på GitHub
Förutsättningar
Kontrollera att du har följande förutsättningar för att slutföra den här självstudien:
- Läs artikeln Event Hubs för Apache Kafka.
- En Azure-prenumeration Om du inte har ett konto kan du skapa ett kostnadsfritt konto innan du börjar.
-
Java Development Kit (JDK) 1.8+
- I Ubuntu kör du
apt-get install default-jdk
för att installera JDK-paketet. - Tänk på att ställa in miljövariabeln JAVA_HOME så att den pekar på den mapp där JDK-paketet är installerat.
- I Ubuntu kör du
-
Ladda ned och installera ett binärt Maven-arkiv
- I Ubuntu kan du köra
apt-get install maven
för att installera Maven.
- I Ubuntu kan du köra
-
Git
- I Ubuntu kan du köra
sudo apt-get install git
för att installera Git.
- I Ubuntu kan du köra
Skapa ett Event Hubs-namnområde
Ett Event Hubs-namnområde krävs för att skicka eller ta emot från en Event Hubs-tjänst. Mer information finns i Skapa en händelsehubb . Se till att kopiera Event Hubs-anslutningssträng för senare användning.
Klona exempelprojektet
Nu när du har en Event Hubs-anslutningssträng klonar du Azure Event Hubs for Kafka-lagringsplatsen och navigerar till undermappenakka
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/akka/java
Kör Akka Streams-producent
Med hjälp av det angivna Akka Streams-producentexemplet skickar du meddelanden till Event Hubs-tjänsten.
Ange en Event Hubs Kafka-slutpunkt
Producentprogram.conf
bootstrap.servers
Uppdatera värdena och sasl.jaas.config
i producer/src/main/resources/application.conf
för att dirigera producenten till Event Hubs Kafka-slutpunkten med rätt autentisering.
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}\";"
}
}
Viktigt!
Ersätt {YOUR.EVENTHUBS.CONNECTION.STRING}
med anslutningssträng för Event Hubs-namnområdet. Anvisningar om hur du hämtar anslutningssträng finns i Hämta en Event Hubs-anslutningssträng. Här är ett exempel på konfiguration: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Kör producent från kommandoraden
Om du vill köra producenten från kommandoraden genererar du JAR-filen och kör sedan inifrån Maven (eller genererar JAR-filen med Maven och kör sedan i Java genom att lägga till nödvändiga Kafka Java Archive-filer (JAR) i klassökvägen):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestProducer"
Producenten börjar skicka händelser till händelsehubben i ämnet test
och skriver ut händelserna till stdout.
Köra Akka Streams-konsument
Med hjälp av det angivna konsumentexemplet tar du emot meddelanden från händelsehubben.
Ange en Event Hubs Kafka-slutpunkt
Konsumentprogram.conf
bootstrap.servers
Uppdatera värdena och sasl.jaas.config
i consumer/src/main/resources/application.conf
för att dirigera konsumenten till Event Hubs Kafka-slutpunkten med rätt autentisering.
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}\";"
}
}
Viktigt!
Ersätt {YOUR.EVENTHUBS.CONNECTION.STRING}
med anslutningssträng för Event Hubs-namnområdet. Anvisningar om hur du hämtar anslutningssträng finns i Hämta en Event Hubs-anslutningssträng. Här är ett exempel på konfiguration: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Kör konsument från kommandoraden
Om du vill köra konsumenten från kommandoraden genererar du JAR-filen och kör sedan inifrån Maven (eller genererar JAR-filen med Maven och kör sedan i Java genom att lägga till nödvändiga Kafka JAR:er i klassökvägen):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestConsumer"
Om händelsehubben har händelser (till exempel om din producent också körs) börjar konsumenten ta emot händelser från ämnet test
.
Kolla in Akka Streams Kafka Guide för mer detaljerad information om Akka Streams.
Nästa steg
Mer information om Event Hubs för Kafka finns i följande artiklar: