CAP
1
Consistency:一致性。从集群中获取到最新的数据 - 在一段事件内,只要没有对数据进行过修改,那么所有请求获取到的最新数据一定是一样的 - 数据一致性不是指所有节点的数据都一样,而是指所有用户拿到的数据是一样的
主从结构是否满足一致性?- 满足
主从结构中,是否所有节点的数据都一样? - 不是
Avaibility:可用性。在集群对外正常提供服务的前提下,访问某一个节点能够在合理时间(一般理解为立刻)内返回正确的结果
Partition Tolerance:分区容忍性。当一个或者部分节点/模块产生故障不影响其他模块或者节点对外提供服务
经过严谨的数学证明,CAP不能同时成立,最多只能同时满足其中的两个条件 - CAP三角理论
在分布式中,首先考虑满足P。在实际开发中,绝大部分框架是CP的,但是在系统中,存在AP模块 - 一个框架要么是CP要么是AP,但是一个系统中CP和AP可以共存
一致性方式/分类
强一致性:当一个节点产生变化的时候,其他节点能够立即感知整个变化并且做出应对操作
弱一致性:当一个节点产生变化的时候,其他节点能够不能感知这个变化或者没有感知
最终一致性:忽略中间过程的变化,要求最后的结果一样
一致性实现方案
主从结构/MS结构
PAXOS算法及其变种
WNR:W指的是写入节点个数,R指的是读取节点个数,N指的是总节点个数 -> W+R>N
2
Consistency:一致性。访问集群的任意一个节点,都能获取到集群中的最新数据
Avaibility:可用性。在一段时间内,服务器只要对外提供服务,那么访问任意一个节点都能够在合理时间内获取到正确结果
Partition Tolerance:分区容忍/容错性。当一台或者多台服务器产生网络故障的时候,不影响其他分区(服务)的运行
经过严格的数学证明,CAP三大理论无法同时成立,所以称之为CAP三角理论
在分布式系统中,首先考虑满足P - 集群越庞大,故障率越高 - 因此,分布式系统是CP或者AP的
绝大部分的分布式框架都是CP的,但是在系统架构中,存在AP模块
一致性方式
强一致性:如果集群中的某个节点发生变化,其他节点能够立即感知这个变化并且能够做出对应的操作
弱一致性:集群中的一个节点发生变化,其他节点能够部分感知变化或者没有感知
最终一致性:忽略中间过程,要求最后的结果相同
一致性方案
MS结构
PAXOS算法及其变种
WNR - W指的是写入节点个数,R指的是读取节点个数,N指的是总节点个数 ---> W+R>N