Краткое руководство. Потоковая передача данных с помощью Центры событий Azure и Apache Kafka

В этом кратком руководстве показано, как выполнять потоковую передачу данных в Центры событий Azure с помощью протокола Apache Kafka. Вы не измените какой-либо код в примере приложений производителя Или потребителя Kafka. Вы просто обновляете конфигурации, которые клиенты используют для указания пространства имен Центров событий, которое предоставляет конечную точку Kafka. Вы также не создаете и не используете кластер Kafka самостоятельно. Вместо этого вы используете пространство имен Центров событий с конечной точкой Kafka.

Примечание.

Этот пример можно найти на сайте GitHub.

Необходимые компоненты

Ниже указаны требования для работы с этим кратким руководством.

Создание пространства имен Центров событий Azure

Если вы создаете пространство имен в Центрах событий, конечная точка Kafka для этого пространства имен включается автоматически. Вы можете выполнять потоковую передачу событий из приложений, использующих протокол Kafka, в концентраторы событий. Выполните пошаговые инструкции в статье Создание концентратора событий с помощью портала Azure, чтобы создать пространство имен в Центрах событий. Если вы используете выделенный кластер, см. статью "Создание пространства имен и концентратора событий" в выделенном кластере.

Примечание.

Центры событий для Kafka не поддерживаются на уровне Базовый.

Отправка и получение сообщений с использованием Kafka в Центрах событий

  1. Включите управляемое удостоверение, назначаемое системой, для виртуальной машины. Дополнительные сведения о настройке управляемого удостоверения на виртуальной машине см. в статье Настройка управляемых удостоверений для ресурсов Azure на виртуальной машине с помощью портал Azure. Управляемые удостоверения для ресурсов Azure предоставляют службам Azure автоматически управляемое удостоверение, которое хранится в Microsoft Entra ID. Это удостоверение можно использовать для проверки подлинности в любой службе, которая поддерживает аутентификацию Microsoft Entra, без использования учетных данных в коде.

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

  2. Используя страницу управления доступом созданного пространства имен Центров событий, назначьте роль владельца данных Центры событий Azure управляемому удостоверению виртуальной машины. Центры событий Azure поддерживает использование идентификатора Microsoft Entra для авторизации запросов к ресурсам Центров событий. С помощью идентификатора Microsoft Entra можно использовать управление доступом на основе ролей 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. Выберите подписку 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. Перезапустите виртуальную машину и войдите обратно на виртуальную машину, для которой настроено управляемое удостоверение.

  4. Клонируйте репозиторий Центров событий Azure для Kafka.

  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;
    

    Примечание.

    Все примеры с OAuth для Центров событий для Kafka можно найти здесь.

  7. Вернитесь в папку "Потребитель" , где находится файл pom.xml, и запустите код потребителя и события обработки из концентратора событий с помощью клиентов 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 находится файл, запустите код производителя и потоковую передачу событий в Центры событий:

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

    В окне производителя должны отображаться сообщения о событиях, отправленных в окне производителя. Теперь проверка окно приложения-получателя, чтобы просмотреть сообщения, полученные из концентратора событий.

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

Проверка схемы для Kafka с помощью реестра схем

Реестр схем Azure можно использовать для проверки схемы при потоковой передаче данных с приложениями Kafka с помощью Центров событий. Реестр схем Azure центров событий предоставляет централизованный репозиторий для управления схемами, и вы можете легко подключить новые или существующие приложения Kafka с реестром схем.

Дополнительные сведения см. в статье "Проверка схем для приложений Apache Kafka с помощью Avro".

Следующие шаги

Из этой статьи вы узнали, как выполнять потоковую передачу данных в Центры событий без необходимости менять клиенты протоколов или запускать собственные кластеры. См. сведения в руководстве для разработчиков Apache Kafka по Центрам событий Azure.