Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法从JavaAPI中的特定偏移量开始使用卡夫卡主题?_Java_Apache Kafka_Kafka Consumer Api_Apache Kafka Streams - Fatal编程技术网

有没有办法从JavaAPI中的特定偏移量开始使用卡夫卡主题?

有没有办法从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仅在尚未提交任何偏移量的情况下对应用程序的第一次启动有效。如果提交了偏移量,应用

我正在使用Kafka流API。当我启动我的应用程序时,有时会出现一个间隙,我希望从特定的偏移开始消费。最早或最晚不是我想要的

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兼容模式