今天遇到一个问题,由于代码问题导致了很多kafka消息入到备用库,偏移量已经变成了最新;如何将偏移量重设到某个时间点,但消费群组重新去消费一次,是解决问题的关键,于是,使用了kafka/bin的sh程序,以下是解决问题的步骤:
- 查看某个组的topic偏移量,这步只是查看,没什么配置作用,只是作到心中有数,时间戳可以使用在线工具去生成
kafka-run-class.sh kafka.tools.GetoffsetShell --broker-list localhost:9092 -topic order_new -time 1659087120000
- 直接修改原消费组的topic的偏移量
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group1 --topic order_new --reset-offsets --to-datetime 2022-07-29T18:00:00.000 --execute
你将到得到一个错误,这个错误是说,本消费组是活动的,你不能修改
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic order_new --group group2
- 修改group2对于order_new的偏移量,偏移量对应的时间节点是2022-07-29T18:00:00.000
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group2 --topic order_new --reset-offsets --to-datetime 2022-07-29T18:00:00.000 --execute
- 查看修改后的状态,也可以通过kafka客户端去查看
kafka-consumer-groups.sh --describe --group group2 --state --bootstrap-server localhost:9092