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

端到端的精确一次性保证

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

(1)Flink内部

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

(2)输入端

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

(3)输出端

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

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

整体流程

相关推荐
天远云服1 小时前
Go 语言实战:构建高并发天远“全国自然人人脸比对 V3”微服务网关
java·大数据·微服务·golang
skywalk81631 小时前
关于创建中文编程语言及自然语言转MoonBit的整合分析报告
大数据·人工智能
阿标在干嘛1 小时前
使用科力辰app与依赖传统渠道获取科技业务信息的效率差
大数据·人工智能·科技
newsxun1 小时前
首都现代物流骨干网络体系正式启动
大数据·人工智能
是阿威啊2 小时前
【第二站】本地hadoop集群配置yarn模式
大数据·linux·hadoop·yarn
RUZHUA2 小时前
六年深耕,稳定币重塑支付未来:从Libra震荡到全球贸易革新
大数据
wenzhangli72 小时前
如何评价钉钉AI1.1新品发布会?垂直战略背后的内耗与垄断隐忧
大数据·人工智能
物流可信数据空间2 小时前
可信数据空间提供新机遇,农业数字发展带来新希望
大数据
virtual_k1smet3 小时前
梧桐·鸿鹄-大数据professional
大数据·笔记