当所有消费者都被删除时,Kafka 消费者组会发生什么

Mic*_* Dz 11 spring apache-kafka spring-boot kafka-consumer-api spring-kafka

我有一个带有自动缩放器的服务,每个实例都需要位于一个单独的消费者组中,我通过创建随机消费者组名称来实现它group-id: my-service-${random.uuid}。我想知道如果所有消费者都消失了,一个消费者组会发生什么。我注意到在 Confluence 平台中,我有很多消费者组,但没有任何消费者。

没有任何消费者的消费群体还能存在多久?

如何配置消费者组在服务被删除后 5 分钟后被删除(我希望删除该组,而不仅仅是删除偏移量)?

mik*_*ike 11

offsets.retention.minutes在 Kafka 中,您可以在代理级别进行配置:

offsets.retention.minutes:在消费者组失去所有消费者(即变空)后,其偏移量将在被丢弃之前保留此保留期。对于独立消费者(使用手动分配),偏移量将在上次提交时间加上此保留期后过期。”

此配置默认为 7 天。请参阅代理配置概述中的所有详细信息。

AdminClient 中还有一个 API,允许您删除特定的 ConsumerGroup。我在另一个答案中用一些代码解释了这个过程。

从 Confluence 6.x 开始,您还可以使用 Confluence 控制中心(使用 REST API)轻松删除过时的 ConsumerGroup。