kafka消费者数量及负载均衡问题

克里斯蒂安 发表于: 2016-07-19   最后更新时间: 2016-07-19 21:29:44   11,256 游览

三个Partition,C1在消费这三个分区。新开第二个消费者后,0和1分区由C1消费,2分区由C2消费,这是由于C2启动后,消费者组进行了负载均衡,这从kafka底层代码可以看出。但是C2突然关闭后,2分区的所有者立刻变成了C1,请问这个阶段的负载均衡是由哪里进行的?底层代码还是集群自己?

发表于 2016-07-19

首先,当“代码”与集群建立连接之后,如果没有设置手动指定分区话,由“代码”告知集群,我要pull所有分区的消息。看到了没,谁清楚你的规则?只“代码”吧,当有一个消费者加入或离开的时候,谁清楚? 只有集群知道吧!是相互的。

C2非正常结束,在执行中突然关闭的,这样的话,就靠集群自己在检查了是吗?

是的,看下 https://www.orchome.com/203
手动指定分区是不会平衡的

生产者那边是把一个文件作为一个message传进来的,并且一个完整的文件放在一个分区里面,那消费者读取的时候,多个分区不是并行读的吗,这样会不会破坏文件的完整性,使读到的文件不能连贯?

不会破坏,一个消息是完整的放在一个分区中,多个消费者读取多个分区的时候,只有其中1个消费者拿到这个消息,不会破坏连贯性。

如果还有新的问题,重新开帖吧

你的答案

查看kafka相关的其他问题或提一个您自己的问题