Flink和Kafka连接时的精确一次保证

端到端的精确一次性保证

既然是端到端的exactly-once,我们可以从三个组件的角度来进行分析:

(1)Flink内部

Flink内部可以通过检查点机制保证状态和处理结果的exactly-once语义。

(2)输入端

输入数据源端的Kafka可以对数据进行持久化保存,并可以重置偏移量(offset)。所以我们可以在Source任务(FlinkKafkaConsumer)中将当前读取的偏移量保存为算子状态,写入到检查点中;当发生故障时,从检查点中读取恢复状态,并由连接器FlinkKafkaConsumer向Kafka重新提交偏移量,就可以重新消费数据、保证结果的一致性了。

(3)输出端

输出端保证exactly-once的最佳实现,当然就是两阶段提交(2PC)。作为与Flink天生一对的Kafka,自然需要用最强有力的一致性保证来证明自己。

也就是说,我们写入Kafka的过程实际上是一个两段式的提交:处理完毕得到结果,写入Kafka时是基于事务的"预提交";等到检查点保存完毕,才会提交事务进行"正式提交"。如果中间出现故障,事务进行回滚,预提交就会被放弃;恢复状态之后,也只能恢复所有已经确认提交的操作。

整体流程

相关推荐
swg3213214 分钟前
Kafka基于ZK和KRaft的设计原理与差异
分布式·kafka
TTBIGDATA5 分钟前
【Ambari Plus】08.Sqoop 安装
大数据·hadoop·ambari·hdp·sqoop·cdh·ambari plus
机汇五金_17 分钟前
钣金外壳定制厂家助力设备升级
大数据·人工智能·python·物联网
LDR00620 分钟前
LDR6500赋能POS机底座:单口Type-C供电、维护与产测一体化解决方案
大数据·c语言·人工智能
Geeys41 分钟前
拼多多投产比(ROI)完整教程
大数据
熊猫钓鱼>_>1 小时前
智能革命的巨浪——AI时代的社会重构与生存之道
大数据·人工智能·重构·架构·llm·agent·ai-native
风向决定发型d7821 小时前
电商素材乱找不着,怎么用AI高效整理复用?
大数据
百胜软件@百胜软件1 小时前
维达×百胜软件E3+订单协同平台项目正式启动,共筑智能履约新标杆
大数据·人工智能
江畔柳前堤1 小时前
第15章:docker故障排查与面试题
大数据·运维·git·elasticsearch·docker·容器·eureka
2601_956865772 小时前
AI企业内训的“效果转化”密码:从“学AI”到“用AI”的机构能力拆解
大数据·人工智能