分布式理论

/ 分布式

历史演变

计算机发展初期,大型主机凭借其超强的计算能力、IO处理能力和稳定性、安全性方面的优秀表现,使得以大型主机为中心的集中式系统架构快速发展起来。

集中式系统: 每个终端或客户端机器仅负责数据的输入与输出,其余数据的控制和存储都交由主机完成

面临问题

随之信息大爆炸的时代来临,集中式系统弊端越来越来明显。为解决上述问题,越来越多的公司改用小型机和普通PC服务器来搭建分布式的计算机系统。

分布式系统一个硬件或软件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调系统

面临问题

事务(ACID理论)

分布式系统虽然解决了集中式系统的弊端,但是本身也面临新的问题。其中主要的就是分布式事务问题。首先让我们了解下,什么叫事务。

事务一系列数据操作组成的程序执行逻辑单元

特性

CAP理论

在集中式系统中,单台主机的事务可以通过上述ACID模型实现。但是面对分布式系统的事务又该满足何种模型呢?

2000年7月,加州伯克利分校教授Eric Brewer首次提出了CAP猜想,两年后被证明可行性。自此,这一理论为分布式计算发展打下牢固基石。

CAP理论:一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)及分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中的两项。

特性说明

正所谓鱼和熊掌不可兼得,那我们在这三个条件下该如何取舍呢?

CAP抉择影响
强AC
弱P
为避免分区容错性问题,可以将所有与事务相关的数据都放在同一分布式节点上。
但是这样虽然避免了分区容错问题,同时也意味着放弃了系统拓展性,回到了集中式系统的问题。
强AP
弱C
这里的弱一致性也就说允许系统在一段时间内可以出现各节点数据不一致情况。
也叫做时间窗口期
但保证系统的最终一致性。
强CP
弱A
弱A就说在发生网络分区或其他故障时,系统会暂时出现不可用的状态

一般根据业务的特性会选择APCP。因为放弃分区容错,那分布式的其他两项也没有任何意义。分区容错是基石。

AP常见场景

CP常见场景

BASE理论

如果说CAP理论是分布式指导思想,那BASE理论就是分布式的最佳实践。

BASE理论:系统即使无法做到强一致性,也可以根据系统自身业务特点来达到系统的最终一致性。

说明