消费者组列表页中 Consumer Group 的状态主要有 Dead、Empty、PreparingRebalance、AwaitingSync、Stable 几种,其中最常见的是 Empty、Stable 和 Dead 三种状态。Consumer Group 中的状态机转换如下图所示:n
Dead:消费者组内无成员并且 Metadata 已经被移除。
Empty:消费分组内当前没有任何成员。如果组内所有 offset 都已过期,则会变为 Dead 状态。一般新创建的 Group 默认为 Empty 状态。n开源 Kafka 0.10.x 版本规定,当消费分组内没有任何成员且状态持续超过7天,此消费分组将会被自动删除。
Stable:消费分组中各个消费者已经加入,处于稳定状态。
Rebalance 状态详解
Rebalance 发生原因
根据 Consumer Group 的状态机可知,当 Consumer Group 为 Empty、AwaitSync 或 Stable 状态时,Group 可能会进行 Rebalance。以下情况可能会发生 Rebalance:
一个消费者订阅了 Topic。
消费者被关闭。
某个 Consumer 被 Group Coordinator(协调器)认为是 Dead 状态时。n如果某个Consumer 在session.timeout.ms时间内没有给 Group Coordinator 发心跳,则该 Consumer 将被认为是 Dead 状态,并且发起 Rebalance。详请参见 CKafka 常用参数配置指南。