Schnellstart: Streamen von Daten mit Azure Event Hubs und Apache Kafka

In dieser Schnellstartanleitung erfahren Sie, wie Sie Daten mithilfe des Apache Kafka-Protokolls in und aus Azure Event Hubs streamen. Sie ändern keinen Code in den Kafka-Beispiel-Producer- oder Consumer-Apps. Sie aktualisieren einfach die Konfigurationen, mit denen die Clients auf einen Event Hubs-Namespace verweisen, der einen Kafka-Endpunkt verfügbar macht. Sie erstellen und verwenden auch keinen Kafka-Cluster selbst. Sie verwenden stattdessen den Event Hubs-Namespace mit dem Kafka-Endpunkt.

Hinweis

Dieses Beispiel ist auf GitHub verfügbar.

Voraussetzungen

Für diese Schnellstartanleitung benötigen Sie Folgendes:

Erstellen eines Azure Event Hubs-Namespace

Wenn Sie einen Event Hubs-Namespace erstellen, wird der Kafka-Endpunkt für den Namespace automatisch aktiviert. Sie können Ereignisse von Ihren Anwendungen streamen, die das Kafka-Protokoll in Event Hubs verwenden. Befolgen Sie die Schritt-für-Schritt-Anleitung unter Erstellen eines Event Hubs mithilfe des Azure-Portals, um einen Event Hubs-Namespace zu erstellen. Wenn Sie einen dedizierten Cluster verwenden, finden Sie weitere Informationen unter Erstellen eines Namespace und eines Event Hubs in einem dedizierten Cluster.

Hinweis

Event Hubs für Kafka wird im Basic-Tarif nicht unterstützt.

Senden und Empfangen von Nachrichten mit Kafka in Event Hubs

  1. Aktivieren Sie eine systemseitig zugewiesene verwaltete Identität für die VM. Weitere Informationen zum Konfigurieren einer verwalteten Identität auf einer VM finden Sie unter Konfigurieren von verwalteten Identitäten für Azure-Ressourcen auf einem virtuellen Computer über das Azure-Portal. Verwaltete Identitäten für Azure-Ressourcen stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID bereit. Sie können diese Identität für die Authentifizierung bei jedem Dienst verwenden, der die Microsoft Entra-Authentifizierung unterstützt. Hierfür müssen keine Anmeldeinformationen im Code enthalten sein.

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

  2. Weisen Sie der verwalteten Identität der VM mithilfe der Seite Zugriffssteuerung des Event Hubs-Namespace, den Sie erstellt haben, die Rolle Azure Event Hubs-Datenbesitzer zu. Azure Event Hubs unterstützt die Verwendung von Microsoft Entra ID zum Autorisieren von Anforderungen an Event Hubs-Ressourcen. Mit Microsoft Entra ID können Sie die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC) zum Gewähren von Berechtigungen für einen Sicherheitsprinzipal verwenden, bei dem es sich um eine*n Benutzer*in oder einen Anwendungsdienstprinzipal handeln kann.

    1. Navigieren Sie im Azure-Portal zu Ihrem Event Hubs-Namespace. Wechseln Sie im linken Bereich zu „Zugriffssteuerung (IAM)“.

    2. Wählen Sie „+Hinzufügen“ und dann Add role assignment aus.

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

    3. Wählen Sie auf der Registerkarte „Rolle“ Azure Event Hubs-Datenbesitzer aus, und wählen Sie die Schaltfläche Weiter aus.

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

    4. Wählen Sie auf der Registerkarte Mitglieder die verwaltete Identität im Abschnitt Zugriff zuweisen aus.

    5. Wählen Sie den Link +Mitglieder auswählen aus.

    6. Führen Sie auf der Seite Verwaltete Identitäten auswählen die folgenden Schritte aus:

      1. Wählen Sie das Azure-Abonnement aus, das über den virtuellen Computer verfügt.

      2. Wählen Sie für die verwaltete Identität die Option Virtueller Computer aus.

      3. Wählen Sie die verwaltete Identität Ihres virtuellen Computers aus.

      4. Klicken Sie unten auf der Seite auf Auswählen.

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

    7. Wählen Sie Überprüfen und zuweisen aus.

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

  3. Starten Sie die VM neu und melden Sie sich wieder bei der VM an, für die Sie die verwaltete Identität konfiguriert haben.

  4. Klonen Sie das Azure Event Hubs-Repository für Kafka.

  5. Navigieren Sie zu azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Wechseln Sie zum Ordner src/main/resources/, und öffnen Sie consumer.config. Ersetzen Sie namespacename durch den Namen Ihres Event Hubs-Namespace.

    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;
    

    Hinweis

    Alle OAuth-Beispiele für Event Hubs für Kafka finden Sie hier.

  7. Wechseln Sie zurück zum Ordner Consumer, in dem sich die Datei „pom.xml“ befindet, führen Sie den Consumercode aus, und verarbeiten Sie Ereignisse vom Event Hub mithilfe Ihrer Kafka-Clients:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Starten Sie ein weiteres Eingabeaufforderungsfenster, und navigieren Sie zu azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Wechseln Sie zum Ordner src/main/resources/, und öffnen Sie producer.config. Ersetzen Sie mynamespace durch den Namen Ihres Event Hubs-Namespace.

  10. Wechseln Sie zurück zum Ordner Producer, in dem sich die Datei pom.xml befindet, führen Sie den Producercode aus, und streamen Sie Ereignisse in Event Hubs:

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

    Sie sollten Nachrichten zu Ereignissen sehen, die ins Producerfenster gesendet wurden. Überprüfen Sie nun das Consumer-App-Fenster, um die Nachrichten anzuzeigen, die es vom Event Hub empfängt.

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

Schemaüberprüfung für Kafka mit der Schemaregistrierung

Sie können die Azure-Schemaregistrierung verwenden, um eine Schemaüberprüfung durchzuführen, wenn Sie Daten mit Ihren Kafka-Anwendungen mithilfe von Event Hubs streamen. Die Azure-Schemaregistrierung für Event Hubs bietet ein zentrales Repository zum Verwalten von Schemas, und Sie können Ihre neuen oder vorhandenen Kafka-Anwendungen nahtlos mit der Schemaregistrierung verbinden.

Weitere Informationen finden Sie unter Überprüfen von Schemas für Apache Kafka-Anwendungen mittels Avro.

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Daten an Event Hubs gestreamt werden, ohne dass Sie Protokollclients ändern oder eigene Cluster ausführen müssen. Weitere Informationen finden Sie unter Apache Kafka-Entwicklerleitfaden für Azure Event Hubs.