2016-05-09 2 views
5

Я хочу сделать поток из кластера Kapka/темы в кластере thr prod в другой кластер Kafka в среде dev для проверки масштабируемости и regrrssion.Репликация сообщений из одной темы Kafka в другую тему kafka

Для решения утиных лент я каскадирую потребитель и производитель Kafka, но мой инстинкт подсказывает мне, что должен быть лучший способ. Но пока я не нашел хорошего решения. Может кто-нибудь мне помочь?

ответ

7

Если вы хотите реплицировать данные из одного кластера в другой, то есть один инструмент kafka под названием MirrorMaker.

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

Вот синтаксис для запуска MirrorMaker инструмента:

bin/kafka-run-class.sh kafka.tools.MirrorMaker 
     --consumer.config consumer.properties 
     --producer.config producer.properties --whitelist my-topic 

Вы можете найти этот скрипт в каталоге установки Кафки. Здесь вы должны указать consumer.properties ваших source cluster и producer.properties вашего destination cluster. Вы можете использовать белый список, темы которого должны быть зеркалированы с помощью опции --whitelist.

Вы можете найти более подробную информацию о Mirroring data between clusters

Примечание: MirrorMaker копирует данные в то же topic_name в destination cluster в source cluster

+0

Отличный инструмент! Но что, если мне нужны только последние N сообщений из темы T? В нашем случае тема prod слишком велика, и нам нужно только часть ее каждый день (скажем, последние сообщения 1M) для использования в uat env. – pls

0

Кафка в основном очередь сообщений, поэтому она имеет пассивное поведение: что-то должно положить сообщения в это (producer), и что-то должно тянуть сообщения от it (consumer).

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

В зависимости от вашего языка программирования вы можете выбирать между готовыми хорошо оформленными производителями и/или потребительскими решениями.

Для более сложных случаев вы можете проверить Apache Буря и т.д.

Смежные вопросы