Репликация данных из кластера Kafka в Центры событий с помощью Apache Kafka Mirror Maker 2
В этом руководстве показано, как реплицировать данные из существующего кластера Kafka в Центры событий Azure с помощью Mirror Maker 2.
Примечание
Этот пример можно найти на сайте GitHub.
В этом руководстве описано следующее:
- Создание пространства имен в Центрах событий
- Настройка или использование существующего кластера Kafka
- Настройка Kafka Mirror Maker 2
- Запуск Kafka Mirror Maker 2
Введение
Apache Kafka MirrorMaker 2.0 (MM2) предназначен для упрощения зеркало или репликации разделов из одного кластера Kafka в другой. Mirror Maker использует платформу Kafka Connect для упрощения настройки и масштабирования. Более подробные сведения о средстве Kafka MirrorMaker см. в руководстве по зеркальному отображению Kafka и средству MirrorMaker.
Так как Центры событий Azure совместима с протоколом Apache Kafka, вы можете использовать Mirror Maker 2 для репликации данных между существующим кластером Kafka и пространством имен Центров событий.
Mirror Maker 2 динамически обнаруживает изменения в разделах и обеспечивает синхронизацию свойств исходного и целевого разделов, включая смещения и секции. Его можно использовать для двунаправленной репликации данных между кластером Kafka и пространством имен Центров событий.
Предварительные требования
В рамках этого руководства вам потребуются:
- Прочтите статью Центры событий 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 выполните команду
-
Дистрибутив Apache Kafka
- Скачайте предпочтительный дистрибутив Apache Kafka (который должен содержать дистрибутив Mirror Maker 2).
Создание пространства имен Центров событий
Для отправки и получения данных из любой службы Центров событий требуется пространство имен Центров событий. См. раздел Создание концентратора событий для получения инструкций по созданию пространства имен и концентратора событий. Скопируйте строку подключения к Центрам событий для дальнейшего использования.
Клонирование примера проекта
Теперь, когда у вас есть строка подключения к Центрам событий, клонируйте репозиторий Центров событий Azure для Kafka и перейдите в нем к подпапке mirror-maker-2
:
git clone https://github.com/Azure/azure-event-hubs-for-kafka.git
cd azure-event-hubs-for-kafka/tutorials/mirror-maker-2
Настройка или использование существующего кластера Kafka
Если у вас нет кластера Kafka, воспользуйтесь кратким руководством по Kafka , чтобы настроить кластер Kafka с нужными параметрами (или использовать существующий кластер Kafka). В целях тестирования можно также создать несколько разделов в только что созданном кластере Kafka и опубликовать в них данные.
Если у вас уже есть кластер Kafka в локальной среде или в управляемой облачной службе Kafka, его можно использовать для репликации существующих данных в Центры событий.
Настройка Kafka Mirror Maker 2
Дистрибутив Apache Kafka поставляется со connect-mirror-maker.sh
скриптом, который входит в комплект с библиотекой Kafka, реализующей распределенный кластер Mirror Maker 2. Он управляет рабочими ролей Connect внутри на основе файла конфигурации. Внутренний драйвер MirrorMaker создает и обрабатывает пары каждого соединителя: MirrorSource Connector, MirrorSink Connector, MirrorCheckpoint Connector и MirrorHeartbeat Connector.
Чтобы настроить Mirror Maker 2 для репликации данных, необходимо обновить файл
kafka-to-eh-connect-mirror-maker.properties
конфигурации Mirror Maker 2, чтобы определить топологию репликации.В файле конфигурации
kafka-to-eh-connect-mirror-maker.properties
определите псевдонимы кластера, которые планируется использовать для кластера Kafka (источник) и Центров событий (назначение).# cluster aliases clusters = source, destination
Затем укажите сведения о подключении для источника, который является кластером Kafka.
source.bootstrap.servers = your-kafka-cluster-hostname:9092 #source.security.protocol=SASL_SSL #source.sasl.mechanism=PLAIN #source.sasl.jaas.config=<replace sasl jaas config of your Kafka cluster>;
Укажите сведения о подключении для назначения, которое является созданным пространством имен Центров событий.
destination.bootstrap.servers = <your-enventhubs-namespace>.servicebus.windows.net:9093 destination.security.protocol=SASL_SSL destination.sasl.mechanism=PLAIN destination.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username='$ConnectionString' password='<Your Event Hubs namespace connection string.>';
Включите поток репликации из исходного кластера Kafka в целевое пространство имен Центров событий.
source->destination.enabled = true source->destination.topics = .*
Обновите коэффициент репликации удаленных разделов и внутренних разделов, создаваемых Зеркальной службой в месте назначения.
replication.factor=3 checkpoints.topic.replication.factor=3 heartbeats.topic.replication.factor=3 offset-syncs.topic.replication.factor=3 offset.storage.replication.factor=3 status.storage.replication.factor=3 config.storage.replication.factor=3
Затем вы копируете
kafka-to-eh-connect-mirror-maker.properties
файл конфигурации в каталог конфигурации дистрибутива Kafka и можете запустить скрипт Mirror Maker 2 с помощью следующей команды../bin/connect-mirror-maker.sh ./config/kafka-to-eh-connect-mirror-maker.properties
После успешного выполнения скрипта вы увидите, что разделы и события Kafka реплицируются в пространство имен Центров событий.
Чтобы убедиться, что события отправляются в Центры событий с поддержкой Kafka, проверка статистику входящего трафика в портал Azure или запустить потребителя в Центрах событий.
Примеры
См. следующие примеры на сайте GitHub:
Если вы размещаете Apache Kafka в Kubernetes с помощью оператора CNCF Strimzi, вы можете использовать пример Strimzi Mirror Maker 2 для Центров событий.
Дальнейшие действия
Дополнительные сведения о концентраторах событий для Kafka см. в следующих статьях:
- Migrating to Azure Event Hubs for Apache Kafka Ecosystems (Переход в Центры событий Azure для экосистем Apache Kafka)