Szybki start: przesyłanie strumieniowe danych za pomocą usług Azure Event Hubs i Apache Kafka

W tym przewodniku Szybki start pokazano, jak przesyłać strumieniowo dane do i z usługi Azure Event Hubs przy użyciu protokołu Apache Kafka. Nie zmienisz żadnego kodu w przykładowych aplikacjach producenta ani konsumentów platformy Kafka. Wystarczy zaktualizować konfiguracje używane przez klientów do wskazywania przestrzeni nazw usługi Event Hubs, która uwidacznia punkt końcowy platformy Kafka. Nie kompilujesz również klastra platformy Kafka i nie używasz go samodzielnie. Zamiast tego należy użyć przestrzeni nazw usługi Event Hubs z punktem końcowym platformy Kafka.

Uwaga

Ten przykład jest dostępny w witrynie GitHub

Wymagania wstępne

Aby ukończyć ten przewodnik Szybki start, upewnij się, że dysponujesz następującymi elementami:

Tworzenie przestrzeni nazw usługi Azure Event Hubs

Podczas tworzenia przestrzeni nazw usługi Event Hubs punkt końcowy platformy Kafka dla przestrzeni nazw jest automatycznie włączony. Zdarzenia można przesyłać strumieniowo z aplikacji korzystających z protokołu Kafka do centrów zdarzeń. Postępuj zgodnie z instrukcjami krok po kroku w temacie Tworzenie centrum zdarzeń przy użyciu witryny Azure Portal , aby utworzyć przestrzeń nazw usługi Event Hubs. Jeśli używasz dedykowanego klastra, zobacz Tworzenie przestrzeni nazw i centrum zdarzeń w dedykowanym klastrze.

Uwaga

Usługa Event Hubs dla platformy Kafka nie jest obsługiwana w warstwie Podstawowa.

Wysyłanie i odbieranie komunikatów przy użyciu platformy Kafka w usłudze Event Hubs

  1. Włącz tożsamość zarządzaną przypisaną przez system dla maszyny wirtualnej. Aby uzyskać więcej informacji na temat konfigurowania tożsamości zarządzanej na maszynie wirtualnej, zobacz Konfigurowanie tożsamości zarządzanych dla zasobów platformy Azure na maszynie wirtualnej przy użyciu witryny Azure Portal. Tożsamości zarządzane dla zasobów platformy Azure udostępniają usługom platformy Azure automatycznie zarządzaną tożsamość w usłudze Microsoft Entra ID. Za pomocą tej tożsamości można uwierzytelnić się w dowolnej usłudze obsługującej uwierzytelnianie usługi Microsoft Entra bez konieczności przechowywania poświadczeń w kodzie.

    Screenshot of the Identity tab of a virtual machine page in the Azure portal.

  2. Korzystając ze strony Kontrola dostępu utworzonej przestrzeni nazw usługi Event Hubs, przypisz rolę właściciela danych usługi Azure Event Hubs do tożsamości zarządzanej maszyny wirtualnej. Usługa Azure Event Hubs obsługuje używanie identyfikatora Entra firmy Microsoft do autoryzowania żądań do zasobów usługi Event Hubs. Za pomocą identyfikatora Entra firmy Microsoft możesz użyć kontroli dostępu na podstawie ról (RBAC) platformy Azure, aby udzielić uprawnień jednostce zabezpieczeń, która może być użytkownikiem lub jednostką usługi aplikacji.

    1. W witrynie Azure Portal przejdź do przestrzeni nazw usługi Event Hubs. Przejdź do obszaru "Kontrola dostępu (IAM)" w obszarze nawigacji po lewej stronie.

    2. Wybierz pozycję + Dodaj i wybierz pozycję Add role assignment.

      Screenshot of the Access Control page of an Event Hubs namespace.

    3. Na karcie Rola wybierz pozycję Właściciel danych usługi Azure Event Hubs i wybierz przycisk Dalej .

      Screenshot showing the selection of the Azure Event Hubs Data Owner role.

    4. Na karcie Członkowie wybierz tożsamość zarządzaną w sekcji Przypisz dostęp do.

    5. Wybierz link +Wybierz członków.

    6. Na stronie Wybieranie tożsamości zarządzanych wykonaj następujące kroki:

      1. Wybierz subskrypcję platformy Azure, która ma maszynę wirtualną.

      2. W obszarze Tożsamość zarządzana wybierz pozycję Maszyna wirtualna

      3. Wybierz tożsamość zarządzaną maszyny wirtualnej.

      4. Wybierz pozycję Wybierz w dolnej części strony.

        Screenshot showing the Add role assignment -> Select managed identities page.

    7. Wybierz pozycję Przejrzyj + przypisz.

      Screenshot showing the Add role assignment page with role assigned to VM's managed identity.

  3. Uruchom ponownie maszynę wirtualną i zaloguj się z powrotem do maszyny wirtualnej, dla której skonfigurowano tożsamość zarządzaną.

  4. Sklonuj repozytorium usługi Azure Event Hubs dla platformy Kafka.

  5. Przejdź do azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Przejdź do src/main/resources/ folderu i otwórz plik consumer.config. Zastąp namespacename ciąg nazwą przestrzeni nazw usługi Event Hubs.

    bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093
    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;
    sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
    

    Uwaga

    Wszystkie przykłady protokołu OAuth dla usługi Event Hubs dla platformy Kafka można znaleźć tutaj.

  7. Wróć do folderu Consumer , w którym znajduje się plik pom.xml, i uruchom kod odbiorcy i przetwarza zdarzenia z centrum zdarzeń przy użyciu klientów platformy Kafka:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Uruchom kolejne okno wiersza polecenia i przejdź do azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Przejdź do src/main/resources/ folderu i otwórz plik producer.config. Zastąp mynamespace ciąg nazwą przestrzeni nazw usługi Event Hubs.

  10. Wróć do folderu Producent , w którym pom.xml znajduje się plik i uruchom kod producenta i uruchom zdarzenia strumieniowe do usługi Event Hubs:

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

    W oknie producenta powinny zostać wyświetlone komunikaty dotyczące zdarzeń wysyłanych. Teraz sprawdź okno aplikacji odbiorcy, aby wyświetlić komunikaty odbierane z centrum zdarzeń.

    Screenshot showing the Producer and Consumer app windows showing the events.

Weryfikacja schematu dla platformy Kafka z rejestrem schematów

Za pomocą usługi Azure Schema Registry można przeprowadzić walidację schematu podczas przesyłania strumieniowego danych za pomocą aplikacji platformy Kafka przy użyciu usługi Event Hubs. Rejestr schematów platformy Azure usługi Event Hubs udostępnia scentralizowane repozytorium do zarządzania schematami i można bezproblemowo połączyć nowe lub istniejące aplikacje platformy Kafka z rejestrem schematów.

Aby dowiedzieć się więcej, zobacz Weryfikowanie schematów dla aplikacji platformy Apache Kafka przy użyciu usługi Avro.

Następne kroki

W tym artykule przedstawiono sposób przesyłania strumieniowego do usługi Event Hubs bez zmieniania klientów protokołu ani uruchamiania własnych klastrów. Aby dowiedzieć się więcej, zobacz Przewodnik dla deweloperów platformy Apache Kafka dotyczący usługi Azure Event Hubs.