Używanie programu Akka Streams z usługą Event Hubs dla platformy Apache Kafka

W tym samouczku pokazano, jak połączyć strumienie Akka za pośrednictwem obsługi usługi Event Hubs dla platformy Apache Kafka bez konieczności zmieniania klientów protokołu ani uruchamiania własnych klastrów.

Ten samouczek zawiera informacje na temat wykonywania następujących 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 platformy 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.
  • Pobieranie i instalowanie archiwum binarnego narzędzia Maven
    • W systemie Ubuntu możesz uruchomić polecenie apt-get install maven, aby zainstalować narzędzie Maven.
  • Usługa Git
    • W systemie Ubuntu możesz uruchomić polecenie sudo apt-get install git, aby zainstalować usługę Git.

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 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 Akka Streams, wysyłaj komunikaty do usługi Event Hubs.

Zapewnianie 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 przekierować 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} ciąg parametrami połączenia dla przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące pobierania parametrów połączenia, zobacz Pobieranie parametrów 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 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="AkkaTestProducer"

Producent rozpoczyna wysyłanie zdarzeń do centrum zdarzeń w temacie testi drukuje zdarzenia do stdout.

Uruchamianie użytkownika usługi Akka Streams

Korzystając z podanego przykładu odbiorcy, odbieraj komunikaty z centrum zdarzeń.

Zapewnianie punktu końcowego platformy Kafka usługi Event Hubs

Consumer application.conf

bootstrap.servers Zaktualizuj wartości isasl.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} ciąg parametrami połączenia dla przestrzeni nazw usługi Event Hubs. Aby uzyskać instrukcje dotyczące pobierania parametrów połączenia, zobacz Pobieranie parametrów 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 plik JAR 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 rozpocznie odbieranie zdarzeń z tematu test.

Zapoznaj się z przewodnikiem Akka Streams Kafka, aby uzyskać bardziej szczegółowe informacje o usłudze Akka Streams.

Następne kroki

Aby dowiedzieć się więcej o usłudze Event Hubs dla platformy Kafka, zobacz następujące artykuły: