CAP定理

一、CAP定理
分布式系统(各系统互相联系且数据共享)中,只能最多知足一致性(Consistency),可用性(Availability)和分区容错性(Partition tolerance)中的两种。
 
一致性:是指客户端的读操做能够拿到最新的写操做的数据
可用性:是指请求在合理的时间内能够返回合理的结果,而不是系统异常,报错,超时等
分区容错性:是指系统出现网络分区后,还能够履行职责。
 
 
二、CAP应用
 
首先P分区容错性是必须的,为何呢?
由于网络自己就不可靠,不可能100%可靠。一个CA系统,当出现分区问题时,有服务器不能使用,此时有写操做,可是不能进行服务器之间的同步,因此系统须要禁止写入,此时会返回系统故障,这就违反了A 可用性,没有返回合理的结果,因此在分布式系统中不能选择CA系统。
 
接下来CP和AP系统(N1,N2两台服务器)
 
一、cp
为了保证一致性,当出现分区现象后,N1的数据已经更新到y,可是因为N1和N2的复制通道关闭了。数据y没法更新到N2,N2节点的数据仍是x。这时候客户端访问N2时,N2须要返回error(保持一致性,此时数据不一致,故返回error),不知足可用性。所以CAP三者只能知足CP
 
二、ap
当出现分区现象后,N1的数据已经更新到y,可是因为N1和N2的复制通道关闭了。数据y没法更新到N2,N2节点的数据仍是x。这时候客户端访问N2时,N2返回的是x,与N1的数据不一致,故没法达到一致性。此时为什么n2不返回error呢,由于可用性是指返回合理的结果,x属于合理的结果。
 
故综上所述,在分布式系统中只能选择AP和CP系统
相关文章
相关标签/搜索