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

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

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

Примечание

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

Prerequisites

Чтобы завершить работу с этим кратким руководством, убедитесь, что у вас есть следующие предварительные требования:

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

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

Примечание

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

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

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

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

    Снимок экрана: вкладка

  2. На странице Управление доступом созданного пространства имен Event Hubs назначьте управляемому удостоверению виртуальной машины роль Центры событий Azure Data Owner. Центры событий Azure поддерживает использование идентификатора Microsoft Entra для авторизации запросов к ресурсам Центров событий. С помощью Microsoft Entra ID можно использовать ролевое управление доступом Azure (Azure RBAC) для предоставления разрешений субъекту безопасности, которым может быть пользователь или служебная учетная запись приложения.

    1. На портале Azure перейдите к пространству имен Event Hubs. Перейдите к контроль доступа (IAM) в области навигации слева.

    2. Нажмите кнопку "+ Добавить " и выберите " Добавить назначение роли".

      Снимок экрана страницы управления доступом пространства имен Event Hubs.

    3. На вкладке Role выберите Центры событий Azure Владелец данных и выберите Next>.

      Снимок экрана: выбор роли владельца данных Центров событий Azure.

    4. На вкладке "Участники" выберите управляемое удостоверение в разделе "Назначение доступа".

    5. Выберите ссылку +Выбрать участников .

    6. На странице "Выбор управляемых удостоверений" выполните следующие действия.

      1. Выберите подписку Azure, которая содержит виртуальную машину.

      2. Для управляемого удостоверения выберите виртуальную машину.

      3. Выберите управляемое удостоверение виртуальной машины.

      4. Выберите в нижней части страницы.

        Снимок экрана: страница

    7. Выберите Проверить и Назначить.

      Скриншот, показывающий страницу назначения ролей с ролью, назначенной управляемому идентификатору виртуальной машины.

  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"                                    
    

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

    Снимок экрана: окна приложения

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

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

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

Очистите ресурсы

Если ресурсы больше не нужны, удалите группу ресурсов и все связанные ресурсы. На портале Azure выберите группу ресурсов для пространства имен Центров событий и выберите Delete.

Дальнейшие шаги

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