Używanie programu Akka Streams z usługą Event Hubs dla platformy Apache Kafka
W tym samouczku pokazano, jak połączyć usługę Akka Streams za pośrednictwem obsługi usługi Event Hubs dla platformy Apache Kafka bez konieczności zmieniania klientów protokołu lub uruchamiania własnych klastrów.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie przestrzeni nazw usługi Event Hubs
- Klonowanie projektu przykładowego
- Uruchamianie producenta usługi Akka Streams
- Uruchamianie użytkownika usługi Akka Streams
Uwaga
Ten przykład jest dostępny w witrynie GitHub
Wymagania wstępne
Aby ukończyć ten samouczek, upewnij się, że masz następujące wymagania wstępne:
- Zapoznaj się z artykułem Usługa Event Hubs dla platformy Apache Kafka.
- Subskrypcja Azure. Jeśli nie masz subskrypcji, przed rozpoczęciem utwórz bezpłatne konto.
- Zestaw Java Development Kit (JDK) 1.8+
- W systemie Ubuntu uruchom polecenie
apt-get install default-jdk
, aby zainstalować zestaw JDK. - Upewnij się, że zmienna środowiskowa JAVA_HOME wskazuje folder, w którym zainstalowano zestaw JDK.
- W systemie Ubuntu uruchom polecenie
- Pobieranie i instalowanie archiwum binarnego maven
- W systemie Ubuntu możesz uruchomić polecenie
apt-get install maven
, aby zainstalować narzędzie Maven.
- W systemie Ubuntu możesz uruchomić polecenie
- Usługa Git
- W systemie Ubuntu możesz uruchomić polecenie
sudo apt-get install git
, aby zainstalować usługę Git.
- W systemie Ubuntu możesz uruchomić polecenie
Tworzenie przestrzeni nazw usługi Event Hubs
Przestrzeń nazw usługi Event Hubs jest wymagana do wysyłania lub odbierania z dowolnej usługi Event Hubs. Aby uzyskać szczegółowe informacje, zobacz Tworzenie centrum zdarzeń. Pamiętaj, aby skopiować parametry połączenia usługi Event Hubs do późniejszego użycia.
Klonowanie projektu przykładowego
Teraz, gdy masz parametry połączenia usługi Event Hubs, sklonuj repozytorium Usługi Azure Event Hubs dla platformy Kafka i przejdź do podfolderuakka
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/akka/java
Uruchamianie producenta usługi Akka Streams
Korzystając z podanego przykładu producenta usługi Akka Streams, wyślij komunikaty do usługi Event Hubs.
Podawanie punktu końcowego platformy Kafka usługi Event Hubs
Producent application.conf
bootstrap.servers
Zaktualizuj wartości isasl.jaas.config
, producer/src/main/resources/application.conf
aby skierować producenta do punktu końcowego platformy Kafka usługi Event Hubs przy użyciu poprawnego uwierzytelniania.
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}\";"
}
}
Ważne
Zastąp {YOUR.EVENTHUBS.CONNECTION.STRING}
element parametry połączenia przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące uzyskiwania parametry połączenia, zobacz Pobieranie parametry połączenia usługi Event Hubs. Oto przykładowa konfiguracja: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Uruchamianie producenta z wiersza polecenia
Aby uruchomić producenta z wiersza polecenia, wygeneruj plik JAR, a następnie uruchom go z poziomu narzędzia Maven (lub wygeneruj plik JAR przy użyciu narzędzia Maven, a następnie uruchom polecenie w języku Java, dodając niezbędne pliki JAR (JARs) platformy Kafka do ścieżki klasy):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestProducer"
Producent rozpoczyna wysyłanie zdarzeń do centrum zdarzeń w temacie test
i wyświetla zdarzenia do stdout.
Uruchamianie użytkownika usługi Akka Streams
Korzystając z podanego przykładu odbiorcy, odbieraj komunikaty z centrum zdarzeń.
Podawanie punktu końcowego platformy Kafka usługi Event Hubs
Consumer application.conf
bootstrap.servers
Zaktualizuj wartości i sasl.jaas.config
, consumer/src/main/resources/application.conf
aby przekierować użytkownika do punktu końcowego platformy Kafka usługi Event Hubs przy użyciu poprawnego uwierzytelniania.
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}\";"
}
}
Ważne
Zastąp {YOUR.EVENTHUBS.CONNECTION.STRING}
element parametry połączenia przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące uzyskiwania parametry połączenia, zobacz Pobieranie parametry połączenia usługi Event Hubs. Oto przykładowa konfiguracja: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Uruchamianie użytkownika z wiersza polecenia
Aby uruchomić konsumenta z poziomu wiersza polecenia, wygeneruj plik JAR, a następnie uruchom go z poziomu narzędzia Maven (lub wygeneruj plik JAR przy użyciu narzędzia Maven, a następnie uruchom polecenie w języku Java, dodając niezbędne pliki JAR platformy Kafka do ścieżki klasy):
mvn clean package
mvn exec:java -Dexec.mainClass="AkkaTestConsumer"
Jeśli centrum zdarzeń zawiera zdarzenia (na przykład jeśli producent jest również uruchomiony), odbiorca rozpoczyna odbieranie zdarzeń z tematu test
.
Aby uzyskać bardziej szczegółowe informacje na temat usługi Akka Streams, zapoznaj się z przewodnikiem platformy Kafka usługi Akka Streams.
Następne kroki
Aby dowiedzieć się więcej o usłudze Event Hubs dla platformy Kafka, zobacz następujące artykuły:
- Dublowanie brokera platformy Kafka w centrum zdarzeń
- Łączenie platformy Apache Spark z centrum zdarzeń
- Łączenie narzędzia Apache Flink z centrum zdarzeń
- Integrowanie platformy Kafka Connect z centrum zdarzeń
- Eksplorowanie przykładów w witrynie GitHub
- Przewodnik dla deweloperów platformy Apache Kafka dotyczący usługi Azure Event Hubs