当应用程序未完成偏移提交(并且自动提交关闭)时,kafka 流应用程序的行为
Behaviour of kafka stream application when offset commit isn't being done either by application (and auto commit off)
我想知道当(使用低级别 API)auto commit
关闭并且 应用程序不进行显式提交时,kafka 流的行为是什么?
如果应用程序重新启动(自动提交关闭,并且应用程序本身不显式提交偏移量),应用程序是否会始终从头开始读取?应用程序的行为是什么。
Kafka Streams 自动将自动提交设置为禁用。
你的 auto.offset.reset
是什么?如果是最新的,那么如果 application.id
没有组,它将始终从最新的偏移量开始。流并不特别;这与 any 消费者组的逻辑相同。
如果有组,则启动终端进程(foreach、print、to 等),然后提交偏移量。并且您可以启用事务处理以获得恰好一次的语义。
大部分内容都包含在文档中。
Kafka Streams 会根据 commit.interval.ms
配置提交偏移量(默认为 30 秒)。因此,即使您请求提交,提交也会定期发生。通常,依赖 Kafka Streams 的隐式提交就足够了(对于大多数应用程序而言,显式请求提交不是必需的)。
我想知道当(使用低级别 API)auto commit
关闭并且 应用程序不进行显式提交时,kafka 流的行为是什么?
如果应用程序重新启动(自动提交关闭,并且应用程序本身不显式提交偏移量),应用程序是否会始终从头开始读取?应用程序的行为是什么。
Kafka Streams 自动将自动提交设置为禁用。
你的 auto.offset.reset
是什么?如果是最新的,那么如果 application.id
没有组,它将始终从最新的偏移量开始。流并不特别;这与 any 消费者组的逻辑相同。
如果有组,则启动终端进程(foreach、print、to 等),然后提交偏移量。并且您可以启用事务处理以获得恰好一次的语义。
大部分内容都包含在文档中。
Kafka Streams 会根据 commit.interval.ms
配置提交偏移量(默认为 30 秒)。因此,即使您请求提交,提交也会定期发生。通常,依赖 Kafka Streams 的隐式提交就足够了(对于大多数应用程序而言,显式请求提交不是必需的)。