Kafka Consumer指定时间戳位置消费消息
若用户不想从
最旧的
或最早的
offset位置开始消费,想指定某个时间戳位置
开始消费,是否可行呢? 答案:可行的
用户给定时间戳,kafka server
通过时间戳确定并返回距离时间戳最近的一条消息的offset
,从返回的offset
开始消费消息即从用户指定某个时间戳开始消费消息
一、生产者生产消息用于测试
Topic:data-time
,通过图1和图2的offset
,共产生2850
条消息
图1
图2
二、消费者消费消息验证测试
图3
图3对比图2可知,消费者最后一条消息:2022-09-24 10:53:45...131
, offset=2849
。消费者消费生产者发布的2850
条消息(即全部发布消息)
利用offset explorer也可以佐证:
三、Kafka Server端通过时间戳修改offset
实验目的:想从offset=36
开始消费消息,需要给定的时间戳:2022-10-24 09:33:42.016
(注意:此处的时间参考是格林威治时间,使用时要转为东八区北京时间,即减8h)
进入kafka\bin\windows
目录下,打开cmd.exe
输入命令:kafka-consumer-groups.bat --reset-offsets --to-datetime 2022-10-24T01:33:42.016 --group console-consumer-1 --bootstrap-server localhost:9092 --execute --topic data-time
由上图结果可知:offset更新到36,验证结果跟实验目的一致,验证可行性。
标签:消费,--,指定,Kafka,时间,消息,offset,Consumer From: https://www.cnblogs.com/caojun97/p/16821081.html