Репликация данных из кластера Kafka в Центры событий с помощью Apache Kafka Mirror Maker 1

В этом руководстве показано, как зеркало брокера Kafka в Центры событий Azure с помощью Kafka Mirror Maker 1.

Kafka MirrorMaker и Центры событий

Примечание

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

Примечание

В этой статье содержатся ссылки на термин, который корпорация Майкрософт больше не использует. Когда этот термин будет удален из программного обеспечения, мы удалим его из статьи.

В этом руководстве описано следующее:

  • Создание пространства имен в Центрах событий
  • Клонирование примера проекта
  • Настройка кластера Kafka
  • Настройка Kafka MirrorMaker
  • Запуск Kafka MirrorMaker

Введение

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

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

Вы можете использовать Apache Kafka MirrorMaker 1 только для передачи данных от Apache Kafka к Центрам событий. MirrorMaker 2 позволяет работать в обоих направлениях, но настраиваемые в MirrorMaker 2 MirrorCheckpointConnector и MirrorHeartbeatConnector должны иметь в конфигурации ссылку на брокер Apache Kafka, а не на Центры событий. В этом учебнике представлен пример настройки MirrorMaker 1.

Предварительные требования

В рамках этого руководства вам потребуются:

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

Для отправки и получения данных из любой службы Центров событий требуется пространство имен Центров событий. См. раздел Создание концентратора событий для получения инструкций по созданию пространства имен и концентратора событий. Скопируйте строку подключения к Центрам событий для дальнейшего использования.

Клонирование примера проекта

Теперь, когда у вас есть строка подключения к Центрам событий, клонируйте репозиторий Центров событий Azure для Kafka и перейдите в нем к подпапке mirror-maker:

git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker

Настройка кластера Kafka

Инструкции по настройке кластера с требуемыми параметрами (или использовании существующего кластера Kafka) см. в кратком руководстве по Kafka.

Настройка Kafka MirrorMaker

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

Более подробные сведения о средстве Kafka MirrorMaker см. в руководстве по зеркальному отображению Kafka и средству MirrorMaker.

Чтобы настроить средство Kafka MirrorMaker, назначьте ему в качестве потребителя или источника кластер Kafka, а в качестве производителя или целевого объекта — концентратор событий.

Конфигурация потребителя

Обновите файл конфигурации потребителя source-kafka.config, из которого средство MirrorMaker получает свойства исходного кластера Kafka.

source-kafka.config
bootstrap.servers={SOURCE.KAFKA.IP.ADDRESS1}:{SOURCE.KAFKA.PORT1},{SOURCE.KAFKA.IP.ADDRESS2}:{SOURCE.KAFKA.PORT2},etc
group.id=example-mirrormaker-group
exclude.internal.topics=true
client.id=mirror_maker_consumer

Конфигурация производителя

Теперь обновите файл конфигурации производителя mirror-eventhub.config, который указывает средству MirrorMaker отправлять повторяющиеся (или зеркальные) данные в службу Центров событий. В частности, измените bootstrap.servers и sasl.jaas.config так, чтобы они указывали на конечную точку Kafka Центров событий. Для работы службы Центров событий требуется безопасное подключение (SASL), которое обеспечивается путем установки последних трех свойств в следующей конфигурации:

mirror-eventhub.config
bootstrap.servers={YOUR.EVENTHUBS.FQDN}:9093
client.id=mirror_maker_producer

#Required for Event Hubs
sasl.mechanism=PLAIN
security.protocol=SASL_SSL
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{YOUR.EVENTHUBS.CONNECTION.STRING}";

Важно!

Замените {YOUR.EVENTHUBS.CONNECTION.STRING} строками подключения для вашего пространства имен Центров событий. Инструкции по получению строки подключения см. в статье Получение строки подключения Центров событий. Пример конфигурации см. здесь: sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";

Запуск Kafka MirrorMaker

Запустите сценарий Kafka MirrorMaker из корневого каталога Kafka с помощью только что обновленных файлов конфигурации. Скопируйте файлы конфигурации в корневой каталог Kafka или обновите пути к ним в следующей команде.

bin/kafka-mirror-maker.sh --consumer.config source-kafka.config --num.streams 1 --producer.config mirror-eventhub.config --whitelist=".*"

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

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

Примеры

См. следующие примеры на сайте GitHub:

Дальнейшие действия

Дополнительные сведения о Центрах событий для Kafka см. в следующих статьях: