Rövid útmutató: Adatok streamelése az Azure Event Hubs és az Apache Kafka használatával

Ez a rövid útmutató bemutatja, hogyan streamelhet adatokat az Azure Event Hubsba és onnan az Apache Kafka protokoll használatával. A minta Kafka-gyártói vagy fogyasztói alkalmazásokban nem fog módosítani semmilyen kódot. Csak frissítenie kell a konfigurációkat, amelyekkel az ügyfelek egy Event Hubs-névtérre mutatnak, amely egy Kafka-végpontot tesz elérhetővé. A Kafka-fürtök önállóan sem építenek és nem használhatók. Ehelyett az Event Hubs-névteret használja a Kafka-végponttal.

Feljegyzés

Ez a minta elérhető a GitHubon.

Előfeltételek

A rövid útmutató elvégzéséhez győződjön meg arról, hogy teljesülnek az alábbi előfeltételek:

Azure Event Hubs-névtér létrehozása

Event Hubs-névtér létrehozásakor a névtér Kafka-végpontja automatikusan engedélyezve lesz. A Kafka protokollt használó alkalmazásokból eseményeket streamelhet eseményközpontokba. Az Event Hubs-névtér létrehozásához kövesse az Eseményközpont létrehozása az Azure Portallal című témakör részletes utasításait. Ha dedikált fürtöt használ, olvassa el a Névtér és eseményközpont létrehozása dedikált fürtben című témakört.

Feljegyzés

A Kafkához készült Event Hubs nem támogatott az alapszinten .

Üzenetek küldése és fogadása a Kafkával az Event Hubsban

  1. Engedélyezze a rendszer által hozzárendelt felügyelt identitást a virtuális gép számára. A felügyelt identitás virtuális gépen való konfigurálásáról további információt az Azure-erőforrások felügyelt identitásainak konfigurálása a virtuális gépen az Azure Portal használatával című témakörben talál. Az Azure-erőforrásokhoz tartozó kezelt identitások az Azure-szolgáltatásokat automatikusan kezelt identitással látják el a Microsoft Entra ID-ban. Ezt az identitást használhatja a Microsoft Entra hitelesítést támogató bármely szolgáltatáshoz történő hitelesítéshez anélkül, hogy a kódjában hitelesítő adatokkal rendelkezne.

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

  2. A létrehozott Event Hubs-névtér hozzáférés-vezérlési lapján rendelje hozzá az Azure Event Hubs-adattulajdonosi szerepkört a virtuális gép felügyelt identitásához. Az Azure Event Hubs támogatja a Microsoft Entra ID használatát az Event Hubs-erőforrásokra irányuló kérések engedélyezéséhez. A Microsoft Entra ID-val azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy olyan biztonsági tagnak, amely lehet egy felhasználó vagy egy alkalmazásszolgáltatás-tag.

    1. Az Azure Portalon lépjen az Event Hubs-névtérre. A bal oldali navigációs sávon lépjen a "Hozzáférés-vezérlés (IAM)" elemre.

    2. Válassza a +Hozzáadás és a kijelölés Add role assignmentlehetőséget.

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

    3. A Szerepkör lapon válassza az Azure Event Hubs-adattulajdonos lehetőséget, majd a Tovább gombot.

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

    4. A Tagok lapon válassza ki a felügyelt identitást a Hozzáférés hozzárendelése szakaszban.

    5. Válassza a +Tagok kijelölése hivatkozást.

    6. A Felügyelt identitások kiválasztása lapon kövesse az alábbi lépéseket:

      1. Válassza ki a virtuális gépet tartalmazó Azure-előfizetést .

      2. Felügyelt identitás esetén válassza a Virtuális gép lehetőséget

      3. Válassza ki a virtuális gép felügyelt identitását.

      4. Válassza a Kijelölés lehetőséget a lap alján.

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

    7. Válassza az Áttekintés + hozzárendelés fület.

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

  3. Indítsa újra a virtuális gépet, és jelentkezzen be vissza arra a virtuális gépre, amelyhez a felügyelt identitást konfigurálta.

  4. Klónozza a Kafkához készült Event Hubs-adattárat.

  5. Nyissa meg a azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer címet.

  6. Váltson a src/main/resources/ mappára, és nyissa meg consumer.config. Cserélje le namespacename az Event Hubs-névtér nevére.

    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;
    

    Feljegyzés

    A Kafkához készült Event Hubs összes OAuth-mintáját itt találja.

  7. Váltson vissza arra a Fogyasztói mappára, ahol a pom.xml fájl található, és futtassa a fogyasztói kódot, és dolgozza fel az eseményeket az eseményközpontból a Kafka-ügyfelek használatával:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Nyisson meg egy másik parancssori ablakot, és lépjen a következőre azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer: .

  9. Váltson a src/main/resources/ mappára, és nyissa meg producer.config. Cserélje le mynamespace az Event Hubs-névtér nevére.

  10. Váltson vissza arra a Producer mappára, ahol a pom.xml fájl található, futtassa a produceri kódot, és streamelje az eseményeket az Event Hubsba:

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

    A produceri ablakban küldött eseményekről szóló üzeneteknek kell megjelennie. Most ellenőrizze a fogyasztói alkalmazás ablakát az eseményközponttól kapott üzenetek megtekintéséhez.

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

Sémaérvényesítés a Kafkához sémaregisztrációs adatbázissal

Az Azure Schema Registry használatával sémaérvényesítést végezhet, amikor adatokat streamel a Kafka-alkalmazásokkal az Event Hubs használatával. Az Event Hubs Azure Schema Registryje központosított adattárat biztosít a sémák kezeléséhez, és zökkenőmentesen csatlakoztathatja az új vagy meglévő Kafka-alkalmazásokat a Sémaregisztrációs adatbázishoz.

További információ: Séma érvényesítése Apache Kafka-alkalmazásokhoz az Avro használatával.

Következő lépések

Ebben a cikkben megtanulta, hogyan streamelhet az Event Hubsba a protokoll-ügyfelek módosítása vagy saját fürtök futtatása nélkül. További információ: Apache Kafka fejlesztői útmutató az Azure Event Hubshoz.