【发布时间】:2021-07-18 16:15:09
【问题描述】:
commitSync() 或其变体如果不是由于当前消费者失败而是由于同一组中的其他消费者失败而发生重新平衡时会发生什么。
比如说,消费者 1 (c1) 被分配了分区 1 和 2(p1 和 p2),总共有 10 个分区。 c1 执行了 poll() 并从 p1(偏移量 400 到 500)和 p2(偏移量 1300 到 1400)获取了 200 条记录,然后处理它们并即将提交。但是在 c1 的 poll() 和提交之间,其他一些消费者失败了,并且发生了重新平衡。 C1 被分配到分区 p4 和 p6。现在 c1 仍然能够将偏移量提交给 p1 和 p2 (他之前被分配到)还是会导致像 CommitFailedException 这样的异常?
【问题讨论】:
-
也许这回答了你的问题:stackoverflow.com/questions/60924842/…
-
@Mike,来自上述 -
"This can happen when a group rebalance completes before the commit could be successfully applied."- 这解决了我的问题
标签: apache-kafka kafka-consumer-api