Quickstart: Gegevens streamen met Azure Event Hubs en Apache Kafka

In deze quickstart ziet u hoe u gegevens kunt streamen naar en van Azure Event Hubs met behulp van het Apache Kafka-protocol. U wijzigt geen code in de kafka-voorbeeld-producent- of consumenten-apps. U werkt alleen de configuraties bij die de clients gebruiken om te verwijzen naar een Event Hubs-naamruimte, waarmee een Kafka-eindpunt wordt weergegeven. U kunt ook zelf geen Kafka-cluster bouwen en gebruiken. In plaats daarvan gebruikt u de Event Hubs-naamruimte met het Kafka-eindpunt.

Notitie

Dit voorbeeld is beschikbaar op GitHub

Vereisten

Zorg ervoor dat u aan de volgende vereisten voldoet om deze snelstart uit te voeren:

Een Azure Event Hubs-naamruimte maken

Wanneer u een Event Hubs-naamruimte maakt, wordt het Kafka-eindpunt voor de naamruimte automatisch ingeschakeld. U kunt gebeurtenissen streamen vanuit uw toepassingen die gebruikmaken van het Kafka-protocol naar Event Hubs. Volg stapsgewijze instructies in event hub maken met behulp van Azure Portal om een Event Hubs-naamruimte te maken. Als u een toegewezen cluster gebruikt, raadpleegt u Een naamruimte en Event Hub maken in een toegewezen cluster.

Notitie

Event Hubs voor Kafka wordt niet ondersteund in de basic-laag .

Berichten verzenden en ontvangen met Kafka in Event Hubs

  1. Schakel een door het systeem toegewezen beheerde identiteit in voor de virtuele machine. Zie Beheerde identiteiten configureren voor Azure-resources op een VIRTUELE machine met behulp van Azure Portal voor meer informatie over het configureren van beheerde identiteiten op een VIRTUELE machine. Beheerde identiteiten voor Azure-resources bieden Azure-services met een automatisch beheerde identiteit in Microsoft Entra ID. U kunt deze identiteit gebruiken voor verificatie bij alle services die Microsoft Entra-verificatie ondersteunen, zonder dat u aanmeldingsgegevens in uw code hoeft te hebben.

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

  2. Wijs op de pagina Toegangsbeheer van de Event Hubs-naamruimte die u hebt gemaakt, de rol Azure Event Hubs-gegevenseigenaar toe aan de beheerde identiteit van de virtuele machine. Azure Event Hubs ondersteunt het gebruik van Microsoft Entra-id om aanvragen voor Event Hubs-resources te autoriseren. Met Microsoft Entra ID kunt u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om machtigingen te verlenen aan een beveiligingsprincipaal, wat mogelijk een gebruiker of een service-principal voor toepassingen is.

    1. Navigeer in Azure Portal naar uw Event Hubs-naamruimte. Ga in het linkernavigatievenster naar Toegangsbeheer (IAM).

    2. Selecteer + Toevoegen en selecteer Add role assignment.

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

    3. Selecteer op het tabblad Rol de gegevenseigenaar van Azure Event Hubs en selecteer de knop Volgende.

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

    4. Selecteer op het tabblad Leden de beheerde identiteit in de sectie Toegang toewijzen aan .

    5. Selecteer de koppeling +Leden selecteren .

    6. Voer op de pagina Beheerde identiteiten selecteren de volgende stappen uit:

      1. Selecteer het Azure-abonnement met de VIRTUELE machine.

      2. Voor beheerde identiteit selecteert u Virtuele machine

      3. Selecteer de beheerde identiteit van uw virtuele machine.

      4. Selecteer Selecteren onder aan de pagina.

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

    7. Selecteer Controleren + Toewijzen.

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

  3. Start de VIRTUELE machine opnieuw op en meld u weer aan bij de VM waarvoor u de beheerde identiteit hebt geconfigureerd.

  4. Kloon de Azure Event Hubs for Kafka-opslagplaats.

  5. Navigeer naar azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Ga naar de src/main/resources/ map en open consumer.config. Vervang door namespacename de naam van uw Event Hubs-naamruimte.

    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;
    

    Notitie

    U vindt alle OAuth-voorbeelden voor Event Hubs voor Kafka hier.

  7. Ga terug naar de map Consumer waarin het pom.xml-bestand zich bevindt en voer de consumentencode uit en verwerkt gebeurtenissen vanuit event hub met behulp van uw Kafka-clients:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Start een ander opdrachtpromptvenster en navigeer naar azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Ga naar de src/main/resources/ map en open producer.config. Vervang door mynamespace de naam van uw Event Hubs-naamruimte.

  10. Ga terug naar de map Producer waar het pom.xml bestand zich bevindt en voer de producercode uit en stream gebeurtenissen naar Event Hubs:

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

    U ziet nu berichten over gebeurtenissen die zijn verzonden in het producentvenster. Controleer nu het venster van de consumenten-app om de berichten te zien die het ontvangt van de Event Hub.

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

Schemavalidatie voor Kafka met schemaregister

U kunt Azure Schema Registry gebruiken om schemavalidatie uit te voeren wanneer u gegevens streamt met uw Kafka-toepassingen met behulp van Event Hubs. Azure Schema Registry van Event Hubs biedt een gecentraliseerde opslagplaats voor het beheren van schema's en u kunt uw nieuwe of bestaande Kafka-toepassingen naadloos verbinden met Schema Registry.

Zie Schema's valideren voor Apache Kafka-toepassingen met behulp van Avro voor meer informatie.

Volgende stappen

In dit artikel hebt u geleerd u hoe u kunt streamen naar Event Hubs zonder uw protocolclients te wijzigen of uw eigen clusters uit te voeren. Zie Ontwikkelaarshandleiding van Apache Kafka voor Azure Event Hubs voor meer informatie.