从盘古开天辟地说起为什么 Flink CP 能实现精确一次?(中)

本文深入探讨了分布式应用全局一致性快照的原理,重点解析了Flink中状态、Channel状态记录的内容,以及如何通过Single-Token conservation模型理解全局一致性快照的构成。通过反证法证明了Channel状态记录的数学关系,并介绍了用marker(类似Flink的barrier)确保一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么我要把这段话放在最前面呢?因为博主有了大发现,博主在总结学习的过程中,总结了除了 Flink CP、Chandy-Lamport 全局一致性快照算法之外的一种 通用全局一致性快照算法!!!。

这套 通用算法 包含 Chandy-Lamport 算法Flink 非对齐 CP 算法 包含 Flink 对齐 CP 算法

可能这一套 通用算法 之前已经有人提过了,但是博主是自己在总结 Flink CP、Chandy-Lamport 算法的过程中,逆推总结出来的,并没有借助外力!!!

1.前言

对于很多做离线或者实时数仓的小伙伴来说,我先问几个问题,看看小伙伴萌能回答上来吗?

  1. ⭐ 你知道状态是什么吗?在离线数据开发的经历中,你碰到过状态的概念吗?

  2. ⭐ 为什么离线数仓不需要状态,实时数据开发中老是提到状态的概念?

  3. ⭐ Flink 中的状态、状态后端、全局一致性快照(Checkpoint\Savepoint) 的作用都是什么,这三个概念的关联又是什么?

  4. ⭐ Flink 是通过什么机制来做 Checkpoint 的?为什么这套机制能够做到故障恢复呢?

  5. ⭐ Flink Checkpoint 是基于 Chandy-Lamport 算法的,但是 Flink 的实现相比 Chandy-Lamport 算法之间又有哪些优点、缺点?

  6. ⭐ Flink Checkpoint 用到了 barrier,为什么用了 barrier 做的快照就能保证全局一致性快照的正确性?barrier 到底起到了什么作用?

  7. ⭐ Flink 对齐 Checkpoint 和非对齐 Checkpoint 的区别是什么?非对齐 Checkpoint 也能保障精确一次吗?

小伙伴们思考一下,都能回答上来么,如果对于某些问题你还有疑问,楼主会通过本篇文章帮你解答这些问题,理清这些概念!

由于本文内容较多,所以博主将本文分为三集,本文是,三集内容是有连接关系的,如果小伙伴在看本文的过程中对有些概念不清楚,可以跳转到上文进行查看:

本文最主要的内容就是解释了:

一个分布式应用是怎么异步做一个全局一致性快照?

2.名词解释

  1. ⭐ Single-Token conservation:一个最常见的分布式应用,单 Token 流转分布式应用

  2. ⭐ Process:指分布式应用中的进程,举个 Flink 中的例子就是 TaskManager

  3. ⭐ Channel:指分布式应用中进程之间的传输通道,举个 Flink 中的例子就是 TaskManager 之间传输数据的网络传输通道

3.分布式应用全局一致性快照要记录的状态内容

首先在分析一个复杂的大数据应用的全局一致性快照之前,我们先以最简单的分布式应用为例。

Single-Token conservation:其有 p 和 q 两个进程,p 可以通过 Channel pq(记为 Cpq) 向 q 发消息,q 可以通过 Channel qp(记为 Cqp) 向 p 发消息,其中有一个叫 token 的消息,在这个系统中一直不停的传输流转,从 p 到 q࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值