Storm KafkaBolt подтолкнуть к нескольким темам Kafka - PullRequest
0 голосов
/ 23 октября 2018

У меня есть сценарий использования, где у меня есть сообщение, которое нужно отправить на несколько тем кафки.В настоящее время на высоком уровне этот метод выглядит следующим образом:

pushToTopics(String msg){
  pushToTopicA(msg);
  pushToTopicB(msg);
  pushToTopicC(msg);
  .
  .
  .
  pushToTopicN(msg);
}

Каждый PushToTopicX (msg) имеет условие, которое при выполнении должно приводить к публикации сообщения в соответствующей теме.Прямо сейчас вся эта логика находится в терминале Bolt, и для отправки сообщений мы используем KafkaProducer.

Я искал способы разбить это на специфические для темы болты и, что более важно, использовать KafkaBolts для отправки сообщений.

Возможно ли это с помощью шторма (v 1.2.2)?Я видел, что совсем недавно был объединен PR, который позволяет создавать собственные обратные вызовы, но у нас этого нет.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Способ, который я в итоге решил, - создать отдельные потоки, каждый из которых связан с темами назначения.Затем с помощью collector.emit в определенных потоках я смог пролистать сообщения через различные болты, которые в конечном итоге выдвигаются в Kafka с помощью KafkaBolt.

0 голосов
/ 26 октября 2018

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

...