2017-01-06 6 views
0

Как нажимать соответствующие данные между темой 1 и темой 2 в другой теме 3? при отправке сообщений от производителя к потребителю?Как отправить kafka соответствующие данные в другую тему

+0

Kafka не предоставляет такую ​​функциональность. Вы должны реализовать своего собственного потребителя \ производителя, который будет читать обе темы, сопоставлять сообщения и передавать на третью тему. –

+0

Благодарим за ответ. Еще вопрос только через API-интерфейс потребителя и производителя в Кафке? Мы не можем использовать шторм/искру/флинк –

+0

, можем ли мы использовать Spark/Flink/Storm, чтобы выполнить это сопоставление и нажав сообщение на тему3? –

ответ

1

Я не работал с Спарком, но я могу дать вам направление формы Apache Storm перспективные представления Apache Storm

  1. Построить топологию с 2 Кафка носиков каждый потребляя от topic1 и topic2

  2. Использовать эту информацию в болтах и ​​comp это данные. Вы можете использовать один болт или ряд последовательных болтов. Возможно, вам придется использовать некоторую настойчивость, а именно. mongodb или что-то такое, как redis или memcache, в зависимости от вас логики сравнения

  3. раздвинуть общие данные нового Кафка темуSend data to kafka from Storm using kafka bolt

Это очень Apache Storm конкретное решение, не может быть самым идеальным или годный или результативный один, но целью дать общую идею

Вот ссылка на основные понятия в шторме Storm Concepts

0

Я работаю с Спарком уже более шести месяцев, и да, это абсолютно возможно. Честно говоря, довольно просто. Но проблема с искровым разрядом немного преувеличена для этой проблемы. Как насчет потоков Кафки? Я никогда с ними не работал, но разве это не решило именно эту проблему?

Если вы хотите использовать искру: Используйте интеграцию Spark Kafka (я использовал искровой поток-кафка-0-10), чтобы потреблять и производить данные, shoud быть очень просто. Затем найдите в программе документацию Spark Streaming Api.

Простое соединение о 2 DStreams должно решить проблему. Если вы хотите хранить данные, которые не соответствуют u, вы можете его окончить или использовать функцию UpdateStateByKey. Надеюсь, это поможет кому-то. Удачи :)

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

  • Нет связанных вопросов^_^