有没有办法从JavaAPI中的特定偏移量开始使用卡夫卡主题?
我正在使用Kafka流API。当我启动我的应用程序时,有时会出现一个间隙,我希望从特定的偏移开始消费。最早或最晚不是我想要的有没有办法从JavaAPI中的特定偏移量开始使用卡夫卡主题?,java,apache-kafka,kafka-consumer-api,apache-kafka-streams,Java,Apache Kafka,Kafka Consumer Api,Apache Kafka Streams,我正在使用Kafka流API。当我启动我的应用程序时,有时会出现一个间隙,我希望从特定的偏移开始消费。最早或最晚不是我想要的 streamProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,“最早”); 我要寻找的是一个场景,比如我在配置文件中设置偏移量或以毫秒为单位的日期,然后从该点开始消费。我想知道是否有办法实现这一点?配置自动.offset.reset仅在尚未提交任何偏移量的情况下对应用程序的第一次启动有效。如果提交了偏移量,应用
streamProperties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,“最早”);
我要寻找的是一个场景,比如我在配置文件中设置偏移量或以毫秒为单位的日期,然后从该点开始消费。我想知道是否有办法实现这一点?配置
自动.offset.reset
仅在尚未提交任何偏移量的情况下对应用程序的第一次启动有效。如果提交了偏移量,应用程序将始终从提交的偏移量恢复处理
在Kafka流中,没有明确设置起始偏移量的API。消费者API将通过consumer#seek()
实现这一点
对于Kafka Streams,获得所需行为的一种方法是,要停止应用程序,请使用
bin/Kafka consmer.group.sh
(或者更好的方法是bin/Kafka Streams application reset.sh
),并提交所需的开始偏移量。如果您随后启动应用程序,它将提取提交的偏移量并从那里开始处理。您是否调查了差距的来源?“Latest”应该为您提供以前没有使用过的最后一个偏移量,所以不应该有。这一点很好。但实际情况是,我的应用程序宕机的时间超过了设置的主题保留时间。因此偏移量不再有效。我以为最早将从可用的最早偏移量开始(因此得名),但当我将其设置为最早时,它将偏移量设置为初始值,并抛出一个例外如果您不限于卡夫卡,并且可以切换到脉冲星,pulsar可以在agilob完成,看起来不错,但这将是一个巨大的迁移,然后可能会检查pulsar客户端是否支持kafka兼容模式