卡夫卡消费者&分区查询

时间:2016-01-08 22:55:00

标签: apache-kafka kafka-consumer-api

我是Kafka的新手并阅读了一些教程。我无法理解消费者与分区之间的关系。

请解决我的以下问题。

  1. 根据文档,只有一个消费者可以使用组中的消息。为什么我们需要在同一组中创建更多的消费者?有什么好处?

  2. ZK是否将消费者分配给个别分区? ,如果是,如果生产者向不同的分区发送消息,那么其他分区的消费者将如何消费该消息?

  3. 我有一个主题,有3个分区。我发布消息,它转到P0。我有5个消费者(不同的消费群体)。所有消费者都会从P0读取消息吗?如果我增加许多消费者,是否所有消息都来自同一个P0? 如果所有消费者都从相同的PO读取,那么性能将如何高?

  4. 重新平衡如何运作?当你增加同一群体中的消费者群体或消费者时它会起作用吗?

  5. 请澄清我的问题并举一些例子。

1 个答案:

答案 0 :(得分:1)

  1. 是的,只有消费者组中的消费者可以使用来自一个分区的消息时,同一组中的其余消费者将被分配给剩余分区以进行并行处理。优点是并行处理。

  2. 是的分区将由ZK分配给消费者。根据分区计数和使用者计数,将完成分配。例如:主题(测试)有3个分区(P1,P2和P3)。我们有一个消费者(C1)。 C1将从所有分区读取消息。如果在同一组中再添加一个使用者(c2)。 ZK将P1,p2分配给C1,P3进入C2。如果再添加一个消费者(C3)而不是P1 = C1,则P2 = C2且P3 = C3。消费者的数量不应大于该主题的分区数。

  3. 以上几点将回答这一点。

  4. 当您在同一个消费者群体中添加消费者时,重新平衡将起作用。