Snabbstart: Strömma data med Azure Event Hubs och Apache Kafka

Den här snabbstarten visar hur du strömmar data till och från Azure Event Hubs med hjälp av Apache Kafka-protokollet. Du ändrar ingen kod i Kafka-exempelproducenten eller konsumentappar. Du uppdaterar bara de konfigurationer som klienterna använder för att peka på ett Event Hubs-namnområde, som exponerar en Kafka-slutpunkt. Du skapar och använder inte heller ett Kafka-kluster på egen hand. I stället använder du Event Hubs-namnområdet med Kafka-slutpunkten.

Kommentar

Det här exemplet finns på GitHub

Förutsättningar

För att kunna slutföra den här snabbstarten behöver du följande:

Skapa en Event Hubs-namnrymd

När du skapar ett Event Hubs-namnområde aktiveras Kafka-slutpunkten för namnområdet automatiskt. Du kan strömma händelser från dina program som använder Kafka-protokollet till händelsehubbar. Följ stegvisa instruktioner i Skapa en händelsehubb med Hjälp av Azure-portalen för att skapa ett Event Hubs-namnområde. Om du använder ett dedikerat kluster kan du läsa Skapa ett namnområde och en händelsehubb i ett dedikerat kluster.

Kommentar

Event Hubs för Kafka stöds inte på den grundläggande nivån.

Skicka och ta emot meddelanden med Kafka i Event Hubs

  1. Aktivera en systemtilldelad hanterad identitet för den virtuella datorn. Mer information om hur du konfigurerar hanterad identitet på en virtuell dator finns i Konfigurera hanterade identiteter för Azure-resurser på en virtuell dator med hjälp av Azure-portalen. Hanterade identiteter för Azure-resurser ger Azure-tjänster en automatiskt hanterad identitet i Microsoft Entra ID. Du kan använda den här identiteten för att autentisera mot alla tjänster som har stöd för Microsoft Entra-autentisering, utan att behöva ha några autentiseringsuppgifter i koden.

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

  2. Använd sidan Åtkomstkontroll i event hubs-namnområdet som du skapade och tilldela rollen Azure Event Hubs-dataägare till den virtuella datorns hanterade identitet. Azure Event Hubs stöder användning av Microsoft Entra-ID för att auktorisera begäranden till Event Hubs-resurser. Med Microsoft Entra-ID kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att bevilja behörigheter till ett säkerhetsobjekt, som kan vara en användare eller ett huvudnamn för programtjänsten.

    1. Gå till Event Hubs-namnområdet i Azure-portalen. Gå till "Åtkomstkontroll (IAM)" i det vänstra navigeringsfältet.

    2. Välj + Lägg till och välj Add role assignment.

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

    3. På fliken Roll väljer du Azure Event Hubs DataÄgare och väljer knappen Nästa .

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

    4. På fliken Medlemmar väljer du Den hanterade identiteteni avsnittet Tilldela åtkomst till .

    5. Välj länken +Välj medlemmar.

    6. Följ dessa steg på sidan Välj hanterade identiteter :

      1. Välj den Azure-prenumeration som har den virtuella datorn.

      2. För Hanterad identitet väljer du Virtuell dator

      3. Välj den virtuella datorns hanterade identitet.

      4. Välj Välj längst ned på sidan.

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

    7. Välj Granska + tilldela.

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

  3. Starta om den virtuella datorn och logga in på den virtuella dator som du konfigurerade den hanterade identiteten för.

  4. Klona Azure Event Hubs för Kafka-lagringsplats.

  5. Navigera till azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Växla till src/main/resources/ mappen och öppna consumer.config. Ersätt namespacename med namnet på Event Hubs-namnområdet.

    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;
    

    Kommentar

    Du hittar alla OAuth-exempel för Event Hubs för Kafka här.

  7. Växla tillbaka till mappen Konsument där pom.xml filen finns och kör konsumentkoden och bearbeta händelser från händelsehubben med dina Kafka-klienter:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Starta ett annat kommandotolkfönster och gå till azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Växla till src/main/resources/ mappen och öppna producer.config. Ersätt mynamespace med namnet på Event Hubs-namnområdet.

  10. Växla tillbaka till mappen Producent där pom.xml filen finns och kör producentkoden och strömma händelser till Event Hubs:

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

    Du bör se meddelanden om händelser som skickas i producentfönstret. Kontrollera nu fönstret för konsumentappen för att se de meddelanden som den tar emot från händelsehubben.

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

Schemavalidering för Kafka med Schema Registry

Du kan använda Azure Schema Registry för att utföra schemavalidering när du strömmar data med dina Kafka-program med hjälp av Event Hubs. Azure Schema Registry of Event Hubs tillhandahåller en centraliserad lagringsplats för att hantera scheman och du kan smidigt ansluta dina nya eller befintliga Kafka-program till Schema Registry.

Mer information finns i Verifiera scheman för Apache Kafka-program med Hjälp av Avro.

Nästa steg

I den här artikeln har du lärt dig att strömma till Event Hubs utan att ändra dina protokollklienter eller köra egna kluster. Mer information finns i Apache Kafka-utvecklarguiden för Azure Event Hubs.