分布式系统的特点、CAP、BASE理论
CAP理论为,一个分布式系统最多只能同时满足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
一致性:
强一致性:要么一起成功,要么一起失败。
一致性指的是及更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致,
可用性:
可用性指的是,及服务一直可用,而且是正常响应时间。
分区容错性:
分区容错性指的是,及分布式系统在遇到某个节点或者网络分区故障的时候,任然能够对外提供满足一致性和可用性的服务。(无法同时满足)。
CAP权衡
通过CAP理论,我们知道无法满足一致性和可用性和分区容错性这三个特性,那要舍弃那个能?
对于大多数大型互联网应用的场景,主机众多,部署分散,而且现在的集群规模越来越大,所以节点故障,网络故障是通常,而且要保证,服务可用性达到N个9,及保证P和A,舍弃C(退而求其次保证最终一致性)。虽然某些地方会影响客户体验,但没达到造成用户流失的严重程度。
对于涉及到钱财这样不能有一丝让步的场景,C必须保证,网络发生故障宁可停止服务,这是保证CA,舍弃P,貌似这几年国内银行发生了不下10起事故,但影响不大,报道也不多,挂哪个大群众知道的少,还有一种保证CP,舍弃A,例如网络故障只读不写,
孰优孰劣,美哟u定论,只能根据场景顶多,适合的才是最好的!
BASE理论
eBay的架构师Dan Pritchett源于对大规模分布式系统的实战总结,在ACM上发表提出了BASE理论,BASE理论是对CAP理论的延申,核心思想是即使无法做到强一致性,(CAP的一致性激素hi强一致性),但应用可以采用蛇和的方式达到最终一致性,
基本可用:
基本可用是指分布式系统在出现故障的时候,允许损失部分的可用性,及保证核心可用,电商大促时,为了应对访问量的激增,部分用户可能被引导到降级页面,服务层也可能只提供降级服务,这就是损失部分可用性的体现。
软状态
软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性,分布式存储中一般一份数据至少有三个副本,允许不同节点副本同步的延时就是软状态的体现,mysql,replication的异步复制也是一种体现。
最终一致性
最终一致性是指系统中的虽有数据副本精工一定时间后,最终能够达到一致的状态,弱一致性和强一致性相反,最终一致性是弱一致性的一种特殊的情况,
分布式系统的特点
1、分布性。分布式系统由多台计算机组成,它们在地域上是分散的,可以散布在一个单位、一个城市、一个国家,甚至全球范围内。整个系统的功能是分散在各个节点上实现的,因而分布式系统具有数据处理的分布性。
2、自治性。分布式系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能。通常,彼此在地位上是平等的,无主次之分,既能自治地进行工作,又能利用共享的通信线路来传送信息,协调任务处理。
3、并行性。一个大的任务可以划分为若干个子任务,分别在不同的主机上执行。
4、全局性。分布式系统中必须存在一个单一的、全局的进程通信机制,使得任何一个进程都能与其他进程通信,并且不区分本地通信与远程通信。同时,还应当有全局的保护机制。系统中所有机器上有统一的系统调用集合,它们必须适应分布式的环境。在所有CPU上运行同样的内核,使协调工作更加容易。