Kafka:使消费者组不活跃

Kafka: make consumer group Inactive

我正在 运行 建立一个数据管道,这样 我通过 jdbc connect 从 sql db 读取数据到 kafka topic 我使用 ES

的 kafka 接收器连接器在 Elasticsearch 中接收这些数据

我需要重置此管道。为此,我想重置正在监听 jdbc 连接主题的消费者组。所以我运行下面的命令

kafka-consumer-groups --reset-offsets --to-earliest --all-topics --execute --group mygroup --bootstrap-server myserver:9092

但是我得到这个错误

Error: Assignments can only be reset if the group 'mygroup' is inactive, but the current state is Stable.

我停止了连接以使该组处于非活动状态,但这没有用。所以我的问题是,如何让我的组不活跃

--reset-offsets 需要在重置偏移量之前检查消费者当前是否处于活动状态。 Stable 表示消费者当前处于活动状态,因此无法将偏移量移回。

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group mygroup --describe

应该给任何活跃的消费者群体(如果有的话)。输出将帮助您确定哪些应用程序当前处于活动状态。一旦让消费者保持活跃的应用程序被终止,您将能够重置偏移量。

或者,如果您使用的是旧消费者,则可以通过 运行

删除消费者组
bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --group mygroup --delete

最后重置偏移量。

我刚刚在 kafka 2.12 上尝试过,当我遇到同样的错误时,我停止了持有该组的微服务(从该消费者组中的主题读取消息),这立即解决了问题。之后,我可以重新调整微服务,一切都继续进行。