我正在使用相同的group-id创建6个消费者。所有的消费者都订阅了2个主题,每个主题有3个分区。因为有6个消费者和2个主题的6个分区,所以我希望使用所有的消费者。但我没有看到所有的消费者都被使用了,有没有办法强制它重新平衡?
我使用的是kafka 0.10.2.0
发布于 2018-07-12 21:37:55
将分区分配给同一消费者组中的消费者不是跨主题完成的。在你身上发生的事情之后...您有t1_p0、t1_p1和t1_p2 (topic1上的分区)和t2_p0、t2_p1和t2_p2 (topic2上的分区)。然后你有一个由6个消费者组成的消费者组c1,c2,...c6。当它们订阅topic1时,c1、c2和c3可能会得到t1_p0、t1_p1和t1_p2;其他3个消费者(c4、c5、c6)是空闲的,因为没有足够的分区。当相同的消费者订阅topic2时,可能会发生相同的情况: c1、c2和c3获取t1_p0、t1_p1和t1_p2;其他3个消费者(c4、c5、c6)由于分区不足而处于空闲状态。我知道您希望c4、c5和c6从主题2中获得这些分区,但正如我所说的,分区分配不是跨主题进行的,而是针对同一主题中的分区进行的。在此场景中,c4、c5和c6处于空闲状态且未使用。
https://stackoverflow.com/questions/51303022
复制相似问题