【kafka】kafka rebalance generation

在这里插入图片描述

1.概述

某个 consumer group 可以执行任意次 rebalance。为了更好地隔离每次 rebalance 上的数据,新版本 consumer 设计了 rebalance generation 用于标识某次 rebalance 。 generation 这个词类似于JVM分代垃圾收集器中“分代” (严格来说, JVM FUll GC 使用的是 generational)的概念 。 笔者把它翻译成“届”,表示 rebalance 之后的一届成员,在 consumer 中它是一个整数,通常从 0 开始。Kafka 引入 consumer generation 主要是为了保护 consumer group 的,特别是防止无效 offset 提交 。比如上一届的 consumer 成员由于某些原因延迟提交了 offset,但 rebalance 之后该 group 产生了新一届的 group 成员,而这次延迟的 offset 提交携带的是旧的 generation 信息,因此这次提交会被 consumer group 拒绝 。

很多 Kafka 用户在使用 consumer 时经常碰到的 ILLEGAL GE阳RATION 异常就是这个原因导致的。事实上,每个 group 进行 rebalance 之后, generation 号都会加 1 ,表示 group 进入了
一个新的版本 。 如图 所示, Generat

猜你喜欢

转载自blog.csdn.net/qq_21383435/article/details/111413859