Репликация данных из кластера Kafka в Центры событий с помощью Apache Kafka Mirror Maker 1
В этом руководстве показано, как зеркало брокера Kafka в Центры событий Azure с помощью Kafka Mirror Maker 1.
Примечание
Этот пример можно найти на сайте 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 для Apache Kafka.
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начать работу.
-
Комплект разработчика Java (JDK 1.7+)
- В Ubuntu выполните команду
apt-get install default-jdk
, чтобы установить JDK. - Обязательно настройте переменную среды JAVA_HOME так, чтобы она указывала на папку, в которой установлен пакет JDK.
- В Ubuntu выполните команду
-
Скачайте и установите двоичный архив Maven.
- В Ubuntu выполните команду
apt-get install maven
, чтобы установить Maven.
- В Ubuntu выполните команду
-
Git;
- В Ubuntu выполните команду
sudo apt-get install git
, чтобы установить Git.
- В Ubuntu выполните команду
Создание пространства имен Центров событий
Для отправки и получения данных из любой службы Центров событий требуется пространство имен Центров событий. См. раздел Создание концентратора событий для получения инструкций по созданию пространства имен и концентратора событий. Скопируйте строку подключения к Центрам событий для дальнейшего использования.
Клонирование примера проекта
Теперь, когда у вас есть строка подключения к Центрам событий, клонируйте репозиторий Центров событий 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:
- Пример кода для этого учебника в репозитории GitHub
- Выполнение Kafka MirrorMaker для Центров событий Azure на экземпляре контейнера Azure
Дальнейшие действия
Дополнительные сведения о Центрах событий для Kafka см. в следующих статьях:
- Подключение Apache Spark к концентратору событий
- Подключение Apache Flink к концентратору событий
- Интеграция Kafka Connect с концентратором событий
- Migrating to Azure Event Hubs for Apache Kafka Ecosystems (Переход в Центры событий Azure для экосистем Apache Kafka)
- Подключение Akka Streams к концентратору событий
- Руководство разработчика Apache Kafka для концентраторов событий Azure