我正在使用Kafka流api。当我开始我的应用程序有时有一个差距,我想开始消费从一个特定的抵消。最早或最晚不是我想要的。
streamProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
我要找的是一个场景,比如我在配置文件中设置偏移量或以毫秒为单位的日期,然后从该点开始消费。我想知道是否有办法做到这一点?
我正在使用Kafka流api。当我开始我的应用程序有时有一个差距,我想开始消费从一个特定的抵消。最早或最晚不是我想要的。
streamProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
我要找的是一个场景,比如我在配置文件中设置偏移量或以毫秒为单位的日期,然后从该点开始消费。我想知道是否有办法做到这一点?
1条答案
按热度按时间kqhtkvqz1#
配置
auto.offset.reset
只有在尚未提交偏移量时,才对应用程序的第一次启动有效。如果提交了偏移量,应用程序将始终从提交的偏移量恢复处理。在kafka流中,没有api来显式地设置起始偏移量。消费者api将允许通过
Consumer#seek()
.对于kafka流,获得所需行为的一种方法是,要停止应用程序,请使用
bin/kafka-consmer.group.sh
(或者更好)bin/kafka-streams-application-reset.sh
),并提交所需的起始偏移量。如果您随后启动应用程序,它将获取提交的偏移量并从此处开始处理。