我对卡夫卡比较新.我已经做了一些实验,但有一些事情我不清楚消费者抵消.从我到目前为止所理解的情况来看,当消费者开始时,它将开始读取的偏移量由配置设置决定auto.offset.reset(如果我错了,请纠正我).
现在说,例如主题中有10条消息(偏移0到9),并且消费者在它关闭之前(或者在我杀死消费者之前)恰好消耗了其中的5条消息.然后说我重启那个消费者流程.我的问题是:
如果auto.offset.reset设置为smallest,它是否总是从偏移量0开始消耗?
如果auto.offset.reset设置为largest,是否将从偏移量5开始消耗?
关于这种情况的行为总是确定的吗?
如果我的问题中的任何内容不清楚,请不要犹豫.提前致谢.
我有一个问题,我的许多来自一个消费者组的 Kafka 客户端没有正确关闭,因此 Kafka 集群认为它们仍然连接。因此,我无法使用我的客户端的新版本连接到消费者组。它将卡在重新平衡步骤中。
根据文档,它们应该在session.timeout.ms或max 之后删除group.max.session.timeout.ms。一开始我尝试设置session.timeout.ms为30000毫秒(30秒),但是在Kafka启动时并没有列出。group.max.session.timeout.ms在那个时间点设置为 300000 毫秒(5 分钟)。30 秒后消费者没有被删除。
之后我尝试减少group.max.session.timeout.ms到 30000 毫秒(30 秒)并重新启动 Kafka。然而,所有的客户都仍然留在消费者组中。
现在,大约 2 小时后,客户端仍然附加到消费者组。
我试图删除消费者组:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--delete --group GroupName
Run Code Online (Sandbox Code Playgroud)
这给了我:
* Group 'GroupName' could not be deleted due to: NON_EMPTY_GROUP
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有--force标志。
接下来,我尝试使用以下命令列出消费者组的所有成员:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--members --group GroupName --describe
Run Code Online (Sandbox Code Playgroud)
这给了我 40-50 个消费者组成员(所有成员都必须处于非活动状态,因为唯一的活动消费者已停止)。
有没有办法让 Kafka 从该组中清除所有消费者或强制它删除整个消费者组?