图书知识聚合
在1本书中找到答案
- 章节5.6.4 rebalance generation为了更好地隔离每次 rebalance 上的数据,新版本 consumer 设计了 rebalance generation 用于标识某次 rebalance。 generation 这个词类似于 JVM 分代垃圾收集器中“分代”(严格来说,JVM GC 使用的是 generational)的概念。 笔者把它翻译成“届”,表示 rebalance 之后的一届成员,在 consumer 中它是一个整数,通常从 0 开始。 Kafka 引入 consumer generation 主要是为了保护 consumer group 的,特别是防止无效 offset 提交。 比如上一届的 consumer 成员由于某些原因延迟提交了 offset,但 rebalance 之后该 group 产生了新一届的 group 成员,而这次延迟的 offset 提交携带的是旧的 generation 信息,因此这次提交会被 consumer group 拒绝。 很多 Kafka 用户在使用 consumer 时经常碰到的 ILLEGAL_GENERATION 异常就是这个原因导致的。
其他人还搜了