2016-11-21 3 views
0

Я новичок в Kafka и сценарий, который я пытаюсь достичь с помощью Apache Kafka:Apache Kafka: Можем ли мы ограничивать чтение сообщения только одним потребителем?

У меня есть 3 производителя, которые отправляют инструкции по определенной теме в Kafka. У меня около 35 потребителей, которые собирают по одной инструкции за раз и выполняют задачу, указанную в наборе инструкций. После его завершения будут опубликованы обновления в другой теме в Kafka.

Требования.

  1. Инструкция прочитана 1 потребитель не следует давать в другой для обработки
  2. Приоритет Сообщение * - Не является обязательным требованием
  3. только 1 инструкция должна быть подобрана в то время для обработки.

Я знаю, что этого можно достичь с помощью JMS. Но у моей организации уже есть настройка Kafka, готовая к установке HDFS в облачной эпохе. Поэтому использование Кафки для достижения этого является наиболее предпочтительным.

У меня есть googled, чтобы найти решение для этого. Но я не смог найти правильный ответ на мое первое и самое важное требование.

Любые предложения? И спасибо заранее.!

+0

Посмотрите здесь: http://stackoverflow.com/documentation/apache-kafka/5449/consumer-groups-and-offset-management –

+0

Кроме того, вы можете настроить каждый потребитель для получения одного сообщения за вызов через параметр «max.poll.records = 1». См. Http://kafka.apache.org/documentation#newconsumerconfigs –

ответ

2

Все, что вам нужно сделать, это поставить потребителей в одну и ту же группу потребителей, присвоив им то же самое group.id. Только один экземпляр потребителя в той же группе получит сообщение.

Обратитесь к документации на https://kafka.apache.org/documentation#intro_consumers

+1

Также см. Параметр «max.poll.records» http://kafka.apache.org/documentation#newconsumerconfigs –

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