KStream из одного кластера во многие

Мне нужно иметь один java-модуль в моем кластере Kafka, который получит сообщение, и в зависимости от двух полей сообщения он будет обогащен и опубликован в другом кластере kafka. Я изучаю KStream API и не могу найти способ отправить данные в другой кластер (без использования библиотеки издателя).

Любые идеи и как я могу это сделать?

Спасибо!


person frm    schedule 12.07.2017    source источник
comment
Вы должны проверить Kafka Connect и использовать Single Message Transforms, которые также позволяют фильтровать сообщения.   -  person Matthias J. Sax    schedule 12.07.2017
comment
Я согласен с Матиасом. Поскольку Confluent Replicator является соединителем Kafka, вы даже можете выполнять SMT прямо в том же инструменте, который также выполняет репликацию из одного кластера в другой (вместо использования Mirror Maker, который не фильтрует, а преобразует/обогащает реплицированные данные).   -  person Hans Jespersen    schedule 13.07.2017
comment
Спасибо за советы! сегодня проведу тест и сообщу   -  person frm    schedule 13.07.2017


Ответы (1)


Мне нужно иметь один java-модуль в моем кластере Kafka, который получит сообщение, и в зависимости от двух полей сообщения он будет обогащен и опубликован в другом кластере kafka. Я изучаю KStream API и не могу найти способ отправить данные в другой кластер (без использования библиотеки издателя).

На данный момент Kafka's Streams API одновременно взаимодействует только с одним заданным кластером. То есть вы не можете читать из кластера Kafka A, а затем записывать в кластер Kafka B с помощью Streams API.

Любые идеи и как я могу это сделать?

Поэтому я бы рекомендовал для этого использовать Kafka Connect. Последние версии Kafka включают так называемую функцию Single Message Transformations в Kafka Connect, которая вы можете использовать для такой маршрутизации сообщений.

Если вы готовы использовать коммерческий инструмент, Confluent Replicator (docs) позволяет выполнять такие межкластерные потоки данных, как Ганс Йесперсен, упомянутый выше.

Хорошей отправной точкой на высоком уровне будет обсуждение Преобразования отдельных сообщений — это не те преобразования, которые вам нужны (не пугайтесь названия :-P) Эвен Чеслак-Постава, один из коммиттеров Kafka, разработавших новую функцию SMT. Также есть сообщение в блоге который кратко описывает SMT в Kafka Connect.

person Michael G. Noll    schedule 13.07.2017
comment
Я не нашел хорошего способа использовать SMT в этом случае, так как SMT ждет преобразования и ожидает возврата записи, и я хочу их использовать и стереть. Я реализую соединитель/плагин для kafka connect, реализующий SinkConnector, мне нужно просмотреть список сообщений, но он кажется более подходящим для этого варианта использования. - person frm; 25.07.2017