我有三个主题,每个主题在一个kafka集群上有三个分区。
现在,共有9个分区。当我创造了9个消费者..。六号正在闲置。只有三个消费者被使用。
我们的期望是:每个消费者应该选择一个分区,因此,9个用户应该从9个分区中获取文档。
但是发生的事情是:一个消费者从三个不同的主题中获取信息。
例如,我有三个主题-- Topic_A、Topic_B和Topic_C --以及三个分区。因此,分析如下:
Topic_A_0,Topic_A_1,Topic_A_2,Topic_B_0,Topic_B_1,Topic_B_2,Topic_C_0,Topic_C_1,Topic_C_2
当我创建9个消费者时,这个发行版的工作原理如下:
Consumer1: Topic_A_0,Topic_B_0,Topic_C_0
Consumer2: Topic_A_1,Topic_B_1,Topic_C_1
Consumer3: Topic_A_2,Topic_B_2,Topic_C_2
Consumer4,Consumer5,Consumer6,Consumer7,Consumer8,Consumer9 are idle它应该是
Consumer1: Topic_A_0
Consumer2: Topic_A_1
Consumer3: Topic_A_2
Consumer4: Topic_B_0
Consumer5: Topic_B_1
Consumer6: Topic_B_2
Consumer7: Topic_C_0
Consumer8: Topic_C_1
Consumer9: Topic_C_2有什么配置吗?我需要让所有9个消费者从9个唯一的参数中获取消息吗?
发布于 2018-07-11 09:57:22
确保您的所有使用者都订阅了同一个使用者组id下的同一组主题。对于主题列表,您可以传递一个预定义列表或一个正则表达式,供使用者订阅。可以在使用者中使用group.id属性设置使用者id。
发布于 2018-07-13 10:32:16
默认分区分配策略不能跨主题工作,因此这是预期的行为。这里有一个类似的问题:Kafka Consumers are balanced across topics
https://stackoverflow.com/questions/51278061
复制相似问题