共用方式為


快速入門:使用 Azure 事件中樞和 Apache Kafka 串流資料

本快速入門說明如何使用 Apache Kafka 通訊協定,將資料串流至 Azure 事件中樞及從 Azure 事件中樞串流。 您不會變更範例 Kafka 產生者或取用者應用程式中的任何程式碼。 您只要更新用戶端用來指向事件中樞命名空間的設定,這會公開 Kafka 端點。 您也不會自行建置和使用 Kafka 叢集。 相反地,您會使用事件中樞命名空間搭配 Kafka 端點。

注意

您可在 GitHub 上取得此範例

必要條件

若要完成本快速入門,請確定您具備下列必要條件︰

建立 Azure 事件中樞命名空間

當建立事件中樞命名空間時,會自動啟用命名空間的 Kafka 端點。 您可以將事件從使用 Kafka 通訊協定的應用程式串流至事件中樞。 遵循使用 Azure 入口網站建立事件中樞內的逐步指示,來建立事件中樞命名空間。 若您正在使用專用叢集,請參閱在專用叢集中建立命名空間與事件中樞

注意

基本層不支援適用於 Kafka 的事件中樞。

使用事件中樞內的 Kafka 傳送及接收訊息

  1. 為虛擬機器啟用系統指派的受控識別。 如需有關在 VM 上設定受控識別的相關資訊,請參閱使用 Azure 入口網站在 VM 上設定 Azure 資源受控識別。 Azure 資源受控識別會在 Microsoft Entra ID 中為 Azure 服務提供自動受控識別。 您可以使用此身分識別來向任何支援 Microsoft Entra 驗證的服務進行驗證,不需要任何您程式碼中的認證。

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

  2. 使用您所建立事件中樞命名空間的 [存取控制] 頁面,將 Azure 事件中樞資料擁有者角色指派給 VM 的受控識別。 Azure 事件中樞支援使用 Microsoft Entra ID 來授權事件中樞資源要求。 透過 Microsoft Entra ID,您可以使用 Azure 角色型存取控制 (Azure RBAC),將權限授與安全性主體 (可能是使用者或應用程式服務主體)。

    1. 在 Azure 入口網站中,瀏覽到您的事件中樞命名空間。 前往左側導覽的 [存取控制 (IAM)]。

    2. 選取 [+新增] 並選取 Add role assignment

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

    3. 在 [角色] 索引標籤中,選取 [Azure 事件中樞資料擁有者],然後選取 [下一步] 按鈕。

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

    4. 在 [成員] 索引標籤中,選取 [指派存取權的對象] 區段的 [受控識別]

    5. 選取 [+選取成員] 連結。

    6. 在 [選取受控識別] 頁面上,遵循下列步驟:

      1. 選取具有 VM 的 [Azure 訂用帳戶]

      2. 針對 [受控識別],選取 [虛擬機器]

      3. 選取虛擬機器的受控識別。

      4. 選取頁面底部的 [選取]

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

    7. 選取 [檢閱 + 指派]

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

  3. 重新啟動 VM,然後重新登入您已設定受控識別的 VM。

  4. 複製適用於 Kafka 的 Azure 事件中樞存放庫

  5. 瀏覽至 azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer

  6. 切換到 src/main/resources/ 資料夾,然後開啟 consumer.config。 將 namespacename 取代為您的事件中樞命名空間。

    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;
    

    注意

    您可以在這裡找到適用於 Kafka 事件中樞的所有 OAuth 範例。

  7. 切換回 pom.xml 檔案所在的 [Consumer] 資料夾,並使用 Kafka 用戶端從事件中樞執行取用者程式代碼和處理事件:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. 啟動另一個命令提示字元視窗,並瀏覽至 azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer

  9. 切換到 src/main/resources/ 資料夾,然後開啟 producer.config。 將 mynamespace 取代為您的事件中樞命名空間。

  10. 切換回 pom.xml 檔案所在的 [Producer] 資料夾,然後執行產生者程式碼並將事件串流至事件中樞:

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

    您應該會看到有關在產生者視窗中傳送之事件的訊息。 現在,請檢查取用者應用程式視窗,以查看它從事件中樞接收的訊息。

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

使用結構描述登錄進行 Kafka 結構描述驗證

當您使用事件中樞串流資料與 Kafka 應用程式時,您可以使用 Azure 結構描述登錄來執行結構驗證。 事件中樞的 Azure 結構描述登錄提供集中式存放庫來管理結構描述,而且您可以順暢地將新的或現有的 Kafka 應用程式與結構描述登錄連線。

若要深入了解,請參閱使用 Avro 驗證 Apache Kafka 應用程式的結構描述

下一步

在本文中,您已了解如何串流至事件中樞,而不需要變更通訊協定用戶端或執行您自己的叢集。 若要深入了解,請參閱適用於 Azure 事件中樞的 Apache Kafka 開發人員指南