如果消息组中没有在线的消费者(如empty状态),是否14天后会自动被删除?
消息组中没有在线的消费者(如empty状态),14天后是否会自动被删除与offsets.retention.minutes、auto.create.groups.enable参数有关:
- 2023年4月25日前创建的实例,auto.create.groups.enable默认为true,消费组多久后会自动被删除取决于offsets.retention.minutes,offsets.retention.minutes支持在控制台修改,具体修改方法请参考修改配置参数。
- 2023年4月25日及之后创建的实例,分为以下几种情况:
- auto.create.groups.enable为false时,消费组不会被删除,如果需要删除消费组,您可以手动删除。
auto.create.groups.enable为false时,存在一种特殊场景:2024年2月5日前创建的Kafka实例,如果消费组只订阅了一个Topic,且消费组状态为empty,此时删除此Topic,会同时将消费组删除。
- auto.create.groups.enable为true时,如果消费组中从未提交过offset,消费组十分钟后自动被删除。
- auto.create.groups.enable为true时,如果消费组中提交过offset,消费组多久后会自动被删除取决于offsets.retention.minutes,offsets.retention.minutes支持在控制台修改,具体修改方法请参考修改配置参数。
- auto.create.groups.enable为false时,消费组不会被删除,如果需要删除消费组,您可以手动删除。
原因如下:Kafka通过offsets.retention.minutes参数控制消费组中offsets保留时间,在此时间内如果没有提交offset,offsets将会被删除。Kafka判定消息组中没有在线的消费者(如empty状态),且没有offsets时,将会删除此消费组。