正好一次从Kafka源在Apache梁

cu6pst1q  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(336)

有没有可能使用kafka源进行一次精确的处理 KafkaIO 在光束中?有一个可以设置为 AUTO_COMMIT ,但它似乎是在消费者处理数据之后,而不是在管道完成处理消息之后,直接提交回kafka。

db2dz4w8

db2dz4w81#

对。像dataflow和flink这样的梁运行程序将处理后的偏移量存储在内部状态中,因此它与kafka consumer config中的“auto\u commit”无关。存储的内部状态以原子方式通过处理进行检查(实际细节取决于运行程序)。
有更多的选项来实现端到端的精确一次语义(从源到束应用到接收器)。kafkaio源提供了一个只读提交记录的选项,并且还支持一个只接收一次的接收器。
有些管道确实设置了“auto\u commit”,主要是为了当管道从零开始重新启动时(与保留内部状态的updated相反),它大体上会在剩下的旧管道周围恢复。如您所述,这没有处理保证。

相关问题