当前位置:网站首页>不能不知道的分布式基础理论
不能不知道的分布式基础理论
2022-07-15 16:20:00 【程铭程铭你快成名】
大型网站为什么要使用分布式服务
- 单点服务虽然开发方便,但是随着业务的扩充很容易遇到瓶颈,降低系统的可用性。
- 单点服务没有服务拆分的概念,排查问题不是很方便,遇到问题需要从头开始,增加了排查问题的成本。分布式系统会按照模块划分,解耦服务之间的依赖性,排查问题方便,降低排查问题的成本,从而提高了系统的可用性。
- 单点服务的交付周期较长,一旦出现问题就会延长交付时间。分布式系统可以按照模块进行交付。按照模块划分之后,可以加快开发速度,每个业务模块的开发人员只需要专注所负责模块。
- 但是分布式体统的设计也带来了一定的挑战,首先架构变得很复杂,并且分布式系统是跨进程,跨网络的,性能比较受网络延迟和带宽的影响,由于高度依赖网络状况,任何一次远程调用都可以失败,所以需要考虑好对应的熔断和降级方案。
- 一套庞大的问服务架构体系,全链路很长,需要一个完整监控系统来及时定位问题。
- 分布式系统中服务很多,给运维带了很大的挑战,不过业内现在有程序的解决方案,比如k8s。
- 分布式事务也是分布式系统中的需要重点解决的难点之一,需要在CP和AP中作出选择,根据业务的特点选择强一致性还是最终一致性。
什么是分布式
- 分布式系统,其组件位于
不同的计算机上,通过网络通信传递信息来沟通、协调它们的工作,这些组件相交互以实现一个共同的目标。 - 分布式系统是独立计算机的集合,对用户而言,它们是一个单一的统一系统。
- 分布式的特征:组件自主,对用户透明。
分布式的优缺点
优点:
- 水平可拓展性:组件自主,分布式系统的计算过程彼此独立发生,这样可以轻松地根据需要添加节点和功能。
- 可靠性 (高容错性):当计算分散到多台计算机上时,某个节点发生故障,并不会导致整个系统瘫痪。
- 高性能:分布式系统可以有效地处理任务,因为工作负载和请求被分解并分散在多台计算机上。
缺点:
- 延迟(Latency): 系统分布越广泛,系统各组成部分之间的等待时间就越长,这可能导致技术团队需要在可用性,一致性和延迟方面进行权衡。
- 故障追踪:由于分布在多台服务器上,故障排除和诊断问题难度较高。
- 其它:通信网络饱和或信息丢失和网络安全问题,方便的数据共享同时意味着机密数据容易被窃取。
副本
- 副本(replica/copy)指在分布式系统中为数据或服务提供的冗余。数据副本指在不同的节点上持久化同一份数据,当出现某一个节点的存储的数据丢失时,可以从副本上读到数据。数据副本是分布式系统解决数据丢失异常的唯一手段。
- 服务副本,指数个节点提供某种相同的服务,这种服务一般并不依赖于节点的本地存储,其所需数据一般来自其他节点。
副本一致性是针对分布式系统而言的,不是针对某一个副本而言。
- 强一致性:任何时刻任何用户或节点都可以读到最近一次成功更新的副本数据。
- 单调一致性:任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。
- 最终一致性:一旦更新成功,各个副本上的数据最终将达到完全一致的状态,但达到完全一致状态所需要的时间不能保障。
- 弱一致性: 一旦更新成功,用户无法在一个确定的时间内读到更新的值。
基本副本控制协议
- 中心化(centralized)副本控制协议:中心化副本控制协议的基本思路是由一个中心节点协调副本数据的更新、维护副本之间的一致性。

- 去中心化(decentralized)副本控制协议:去中心化副本控制协议没有中心节点,协议中所有的节点都是完全对等的,节点之间通过平等协商达到一致。

Lease机制
- Lease 机制是最重要的分布式协议,广泛应用于各种实际的分布式系统中。
- Lease 是由颁发者授予的在某一有效期内的承诺。
- 颁发者一旦发出 lease,则无论接受方是否收到,也无论后续接收方处于何种状态,
只要 lease 不过期,颁发者一定严守承诺。 - 另一方面,接收在 lease 的有效期内可以使用颁发者的承诺,
但一旦 lease 过期,接收方一定不能继续使用颁发者的承诺。
Lease机制最重要的功能是判定节点状态

CAP理论
CAP 理论是由 Eric Brewer 提出的分布式系统中最为重要的理论之一。CAP 理论的定义很简单,CAP 三个字母分别代表了分布式系统中三个相互矛盾的属性:
- Consistency (一致性):CAP 理论中的副本一致性特指强一致性
- Availiablity(可用性):指系统在出现异常时已经可以提供服务
- Tolerance to the partition of network (分区容忍):指系统可以对网络分区这种异常情 况进行容错处理
CAP 理论指出:无法设计一种分布式协议,使得同时完全具备 CAP 三个属性
- 该种协议下的副本始终是强一致性
- 服务始终是可用的
- 协议可以容忍任何网络分区异常
分布式系统协议只能在 CAP 这三者间所有折中。
BASE理论,Basically Available, Soft state, Eventual consistency
- 即使无法做到强一致性(Strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(Eventual consistency)
- 基本可用:相较于正常的系统而言,应用出现了不可预知的故障,依旧能用。(响应时间上的损失、功能上的损失。)
- 软状态:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
- 最终一致性:最终一致性要求一旦更新成功,各个副本上的数据最终将达到完全一致的状态,但达到完全一致状态所需要的时间不能保障。
边栏推荐
- R语言dplyr包summarise_all函数计算dataframe数据中所有数值数据列的均值和中位数、使用sapply筛选数值数据列(Summarize all Numeric Variables
- 软件研发效能需求价值流分析专题
- R语言使用nnet包的multinom函数构建无序多分类logistic回归模型、使用exp函数、confint函数、coef函数获取模型中每个变量(自变量改变一个单位)对应的优势比
- QT UI Designer interface common operation records (qtablewidget)
- The third question of the 13th Landbridge cup 2022 - sum (prefix sum or formula method)
- R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的计数个数、均值和中位数、使用list函数指定函数列表并指定自定义函数名称
- 因员工将密码设为“123456”,AMD 被盗 450Gb 数据?
- 动画以及封装(offset、client、scroll系列)
- Symbol data type
- R语言ggplot2可视化条形图:通过双色渐变配色颜色主题可视化条形图
猜你喜欢

爆肝万字,终于搞定这篇神经网络搭建全全全流程!学不会你来找我~

Matlab-mex

Special topic of software R & D efficiency demand value stream analysis

NVIDA CUDA-DirverAPI入门

软件研发效能需求价值流分析专题

函数与箭头函数

裁员吵架散摊子, 马斯克:我太难了;狠心开源了一个舆情获取项目;取特征工程跟调参一样简单了?!NeRF大佬直呼卷不动了;前沿论文 | ShowMeAI资讯日报

Function advanced application

How can win11 maximize the software interface by default? Win11 opens the software interface by default to maximize

Diwen serial port screen tutorial (3)
随机推荐
Differences among foreach, for in and for of
[deep learning] the speed accuracy of yolov7 exceeds that of other variants. Great God AB tweeted, netizen: it has to be you| Open source
Acquisition data transmission mode of vibrating wire wireless acquisition instrument for engineering monitoring instrument
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化箱图、设置add参数为箱图添加分布数据点图(点阵图、dot plot)
論文中的好文佳句摘錄
牛啊!2小时复现顶会论文,他的秘诀是——
关于 c 打印异常的问题
Practice of online problem feedback module (II): automatic generation of class file by encapsulating code
R语言使用lm函数构建线性回归模型、使用I运算符嵌入表达式、使用表达式指定回归方程的形式
Is it safe to open futures accounts online?
R语言使用lm函数构建回归模型、使用MASS包的boxcox函数寻找最佳幂变换提高模型拟合度、可视化boxcox曲线并获取最佳lambda值
论文中的好文佳句摘录
强势出圈的民宿行业 一手好牌如何打破魔咒?
Iterators and generators
Sword finger offer punch stack queue heap
The third question of the 13th Landbridge cup 2022 - sum (prefix sum or formula method)
2022安全员-C证特种作业证考试题库及答案
蓝桥杯2022年第十三届省赛第三题-求和 (前缀和 或 公式法)
杰理之开启按键配对,第一次配对 tws 后,再进行交叉配对很难配对 成功【篇】
Qdu summer training - warm up match