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:
- Lesen Sie den Artikel Event Hubs für Apache Kafka.
- Ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Erstellen Sie einen virtuellen Windows-Computer, und installieren Sie die folgenden Komponenten:
- Java Development Kit (JDK) 1.7 oder höher
- Ein binäres Maven-Archiv (Download/Installationsanleitung)
- Git-Client
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
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.
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.
Navigieren Sie im Azure-Portal zu Ihrem Event Hubs-Namespace. Wechseln Sie im linken Bereich zu „Zugriffssteuerung (IAM)“.
Wählen Sie „+Hinzufügen“ und dann
Add role assignment
aus.Wählen Sie auf der Registerkarte „Rolle“ Azure Event Hubs-Datenbesitzer aus, und wählen Sie die Schaltfläche Weiter aus.
Wählen Sie auf der Registerkarte Mitglieder die verwaltete Identität im Abschnitt Zugriff zuweisen aus.
Wählen Sie den Link +Mitglieder auswählen aus.
Führen Sie auf der Seite Verwaltete Identitäten auswählen die folgenden Schritte aus:
Wählen Sie das Azure-Abonnement aus, das über den virtuellen Computer verfügt.
Wählen Sie für die verwaltete Identität die Option Virtueller Computer aus.
Wählen Sie die verwaltete Identität Ihres virtuellen Computers aus.
Klicken Sie unten auf der Seite auf Auswählen.
Wählen Sie Überprüfen und zuweisen aus.
Starten Sie die VM neu und melden Sie sich wieder bei der VM an, für die Sie die verwaltete Identität konfiguriert haben.
Klonen Sie das Azure Event Hubs-Repository für Kafka.
Navigieren Sie zu
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Wechseln Sie zum Ordner
src/main/resources/
, und öffnen Sieconsumer.config
. Ersetzen Sienamespacename
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.
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"
Starten Sie ein weiteres Eingabeaufforderungsfenster, und navigieren Sie zu
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Wechseln Sie zum Ordner
src/main/resources/
, und öffnen Sieproducer.config
. Ersetzen Siemynamespace
durch den Namen Ihres Event Hubs-Namespace.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.
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.