如果kafka在重平衡过程中去poll消息, poll是否会阻塞直到重平衡结束, poll拉的消息起始点是上次拉的结束点,还是consumer_offset主题里面存储的消费位移?

2372389705 发表于: 2021-06-05   最后更新时间: 2021-06-05 19:23:13   129 游览


发表于 14天前

consumer_offset里面存储的消费offset。

kafka是批量拉取消息的,一次拉取2000-3000条,当poll()时,kafka消费者组内发生了重新平衡时,是不会影响正在处理的消费者的。

举个场景吧,比如:
消费者A,正在处理P1和p2的分区,当有新的消费者B出现时,触发消费者平衡,kafka将p2分给了B消费者。这时,消费者A处理完拉取到的p2消息,提交完offset之后,不会在接收到新p2消息了,这时消费者B开始处理。

所以,这里的重点是提交完offset之后,因为对于kafka来讲,offset提交之后,就已经认定消费了,消费者B则接着开始消费。

2372389705 -> 半兽人 14天前

去调用重平衡监听器中onPartitionRevoked()的是谁,是在poll的那条线程吗?

找不到想要的答案?

我要提问
提问