Apache Kafka如何向多个消费者群体发送消息?

时间:2015-05-19 17:14:09

标签: apache-kafka

Kafka documentation

  

Kafka以不同的方式处理这个问题。我们的主题分为一组   完全有序的分区,每个分区由一个消费者使用   在任何给定的时间。这意味着每个消费者的位置   partition只是一个整数,即下一条消息的偏移量   消耗。这使得状态消耗非常小,   每个分区只有一个数字。这种状态可以定期   检查点。这相当于消息确认   非常便宜。

然而,按照同一份文件中的快速入门指南,我很容易就能够:

  1. 使用单个分区创建主题
  2. 启动控制台生产者
  3. 推送几条消息
  4. 让消费者使用--from-beginning
  5. 启动其他消费者--from-beginning
  6. 让两个消费者成功使用同一个分区。

    但这似乎与上面的文档不一致?

1 个答案:

答案 0 :(得分:4)

使用不同的消费者群体时,消费者可以轻松使用相同的分区。您可以将组ID视为使用Kafka主题的不同应用程序。多个不同的应用程序可能希望以不同方式使用Kafka主题中的数据,从而不会与其他应用程序冲突。这就是为什么两个消费者可能会消耗一个分区的原因(事实上,这是两个消费者如何消费一个分区的唯一方式)。

当你启动一个控制台消费者时,它随机为它生成一个组ID(link),因此这些消费者正在做我刚写的内容。