前提条件:
相关所有消费服务必须停止。
执行如下命令即可:
首先查看指定消费组信息下面使用的topic offset 情况:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group you_consumer_group_name --describe
注意看current-offset 和 log-end-offset还有 lag ,分别为当前偏移量,结束的偏移量,落后的偏移量。
现在的情况是有90条信息已经消费完毕了。只要看lag为0。如果还有未消费的会显示如下信息:
现在明显是lag为12,current-offset =91,log-end-offset=103 ,告诉我们有12条未消费,
current-offset 当前已经消费到偏移量为91,可以理解为已经消费91条。
log-end-offset可以理解为总共103条记录。
lag可以理解为未消费记录条数。
如果想控制当前offset,需要注意的是这里面的消息可能消费过后,超过配置文件(server.properties)里面的属性-> log.retention.hours = 168 ,这个属性代表消息保留时间为多少小时。默认为168小时,也就是一周时间。所以你只能控制到近期保留的消息偏移量 (我这里举例设置从80偏移量开始)-> 可以执行如下命令:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group you_consumer_group_name --topic you_topic_name --execute --reset-offsets --to-offset 80
执行如上命令类似如下结果说明设置成功了。我们继续使用第一条命令查看验证一下:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group you_consumer_group_name --describe
OK,很明显手动调节偏移量成功了。