Apache kafka Kafka流中的一次处理配置是否保证只读取提交的读取?
有一系列关于卡夫卡交易和一次性交付的优秀文章。Apache kafka Kafka流中的一次处理配置是否保证只读取提交的读取?,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,有一系列关于卡夫卡交易和一次性交付的优秀文章。 作者说关于消费者: 因此,在使用者端,您有两个用于读取事务性消息的选项,通过“isolation.level”使用者配置来表示: read_committed:除了读取不属于事务的消息外,还能够读取在 事务已提交 read_uncommitted:按偏移顺序读取所有消息,而不等待事务提交。此选项类似于 卡夫卡消费者的当前语义 也就是说,如果用户只想从主题中读取提交写入,则普通用户应用程序必须指定read\u committed 然而,关于卡夫卡流:
作者说关于消费者: 因此,在使用者端,您有两个用于读取事务性消息的选项,通过“isolation.level”使用者配置来表示: read_committed:除了读取不属于事务的消息外,还能够读取在 事务已提交 read_uncommitted:按偏移顺序读取所有消息,而不等待事务提交。此选项类似于 卡夫卡消费者的当前语义 也就是说,如果用户只想从主题中读取提交写入,则普通用户应用程序必须指定
read\u committed
然而,关于卡夫卡流:
让Streams应用程序只使用一次所需的一切
语义,是将此配置设置为“processing.guarange=justice_once”。
这会导致所有处理只发生一次;这
包括使处理和所有物化
由写回Kafka的处理作业创建的状态,
就一次
没有明确说明KStream中的读取。一旦配置了,KStream是否只会读取已提交的消息?是的,KStream只会读取已提交的消息,文档中没有明确说明,但您可以在中找到以下信息: 如果“processing.guarance”设置为“justly_once”,则Kafka Streams不允许用户覆盖以下属性(括号中显示的Streams设置): “isolation.level”(read_committed)-使用者将始终仅读取提交的数据 “enable.幂等”(true)-生产者将始终启用幂等性 “每个连接的最大飞行中请求数”(5)-生产者每次连接将始终有一个飞行中请求