CAP定理

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