为什么我要把这段话放在最前面呢?因为博主有了大发现,博主在总结学习的过程中,总结了除了 Flink CP、Chandy-Lamport 全局一致性快照算法之外的一种 通用全局一致性快照算法
!!!。
这套 通用算法
包含 Chandy-Lamport 算法
≈ Flink 非对齐 CP 算法
包含 Flink 对齐 CP 算法
。
可能这一套 通用算法
之前已经有人提过了,但是博主是自己在总结 Flink CP、Chandy-Lamport 算法的过程中,逆推总结出来的,并没有借助外力!!!
1.前言
对于很多做离线或者实时数仓的小伙伴来说,我先问几个问题,看看小伙伴萌能回答上来吗?
-
⭐ 你知道状态是什么吗?在离线数据开发的经历中,你碰到过状态的概念吗?
-
⭐ 为什么离线数仓不需要状态,实时数据开发中老是提到状态的概念?
-
⭐ Flink 中的状态、状态后端、全局一致性快照(Checkpoint\Savepoint) 的作用都是什么,这三个概念的关联又是什么?
-
⭐ Flink 是通过什么机制来做 Checkpoint 的?为什么这套机制能够做到故障恢复呢?
-
⭐ Flink Checkpoint 是基于 Chandy-Lamport 算法的,但是 Flink 的实现相比 Chandy-Lamport 算法之间又有哪些优点、缺点?
-
⭐ Flink Checkpoint 用到了 barrier,为什么用了 barrier 做的快照就能保证全局一致性快照的正确性?barrier 到底起到了什么作用?
-
⭐ Flink 对齐 Checkpoint 和非对齐 Checkpoint 的区别是什么?非对齐 Checkpoint 也能保障精确一次吗?
小伙伴们思考一下,都能回答上来么,如果对于某些问题你还有疑问,楼主会通过本篇文章帮你解答这些问题,理清这些概念!
由于本文内容较多,所以博主将本文分为上,中,下三集,本文是下,三集内容是有连接关系的,如果小伙伴在看本文的过程中对有些概念不清楚,可以跳转到上文进行查看:
其中上集介绍了关于状态以及做状态管理能为我们的生产提供什么样的帮助。
[
从盘古开天辟地说起为什么 Flink CP 能实现精确一次?(上)
](https://mp.weixin.qq.com/s?__biz=MzkxNjA1MzM5OQ==&mid=2247492764&idx=1&sn=5e0f9756f99d855c0dece03c6a06f030&chksm=c1576864f620e172e8ea66a19847024c973322db8023eeb2dd8d2bcec3e39ee9684fc3b1d6e5&scene=21#wechat_redirect)
中集介绍了一个分布式应用的全局一致性快照包含的内容以及Flink Checkpoint 的 barrier 是干啥用的,为啥使用 barrier 就能做出来一个全局一致性的快照。
[
从盘古开天辟地说起为什么 Flink CP 能实现精确一次?(中)
](https://mp.weixin.qq.com/s?__biz=MzkxNjA1MzM5OQ==&mid=2247492809&idx=1&sn=d47a3cc058498cadd243856d89a6a520&am