Apache Kafka:我们可以限制消息只被 1 个消费者读取吗?

Apache Kafka: Can we restrict message to be read by only 1 consumer?

我是 Kafka 的新手,我尝试使用 Apache Kafka 实现的场景是:

我有 3 个生产者正在向 Kafka 中的特定主题发送指令。我有大约 35 个消费者,他们一次选择一条指令并执行指令集中提到的任务。完成后,它将 post 更新到 Kafka 中的另一个主题。

要求。

  1. 不应将由 1 个消费者读取的指令提供给另一个消费者进行处理
  2. 消息优先级 * - 不是强制性要求
  3. 一次只能选取 1 条指令进行处理。

我知道这可以使用 JMS 来实现。但是我的组织已经准备好 Kafka 设置作为云时代 HDFS 设置的一部分。所以使用Kafka来实现这个是最优选的。

我已经用谷歌搜索来找到解决这个问题的方法。但是我无法为我的第一个也是最重要的要求找到合适的答案。

有什么建议吗?提前致谢!

你所要做的就是通过分配相同的 group.id 来将消费者放在同一个消费者组中。同一组中只有一个消费者实例会收到一条消息。

请参阅 https://kafka.apache.org/documentation#intro_consumers

中的文档