Kafka消费者组何时会被标记为DEAD状态并从代理移除?
Kafka消费者组DEAD状态的触发时机
一、消费者组被标记为DEAD的常见场景
- 组内所有消费者都主动退出(比如调用
close()方法),且没有新消费者加入组 - 组内所有消费者心跳超时:消费者与协调器的心跳间隔超过
session.timeout.ms配置值,协调器判定该消费者离线;当组内所有成员都被判定离线后,消费者组会被标记为DEAD状态 - 消费者组订阅的主题被全部删除,且没有新的订阅任务,同时组内所有消费者都已退出
二、消费者停止消费并提交偏移量后的DEAD状态触发时机
分两种情况:
- 正常停止并提交偏移量:消费者主动向协调器发送离开组的请求,当组内最后一个消费者完成这个操作后,协调器会立即将组标记为DEAD。之后,该组的偏移量信息会在
offsets.retention.minutes配置的时长后被broker移除(默认是7天) - 异常停止但已提交偏移量:协调器会等待
session.timeout.ms时长(默认10秒),确认该消费者心跳超时后将其移出组;当组内所有成员都被移出后,组进入DEAD状态,同样在offsets.retention.minutes配置的时间后,组的相关数据会被broker移除
关键配置说明
session.timeout.ms:消费者心跳超时阈值,超时则被判定为离线,默认10000msoffsets.retention.minutes:DEAD消费者组的偏移量保留时长,超过该时间后偏移量及组元数据会被清理,默认10080分钟(7天)
内容的提问来源于stack exchange,提问作者user1403806
相关产品推荐
相关产品推荐

