作为一个一线的php码农,对分布式系统仅限于使用,却没有实际去做一个分布式的系统,这不得不说是一个遗憾,这也是我正在学c++的初衷之一吧,当然不是非得c++,java/go或许是更好的选择。
cap的理论,有点模糊的概念,却不是特别清楚
在谷歌不可用的情况下bing和百度都是程序猿的好帮手。copy下大家的总结,说说我的浅薄的理解
cap理论
CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼
分布式系统的CAP理论:理论首先把分布式系统中的三个特性进行了如下归纳:
● 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
● 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
● 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
辩证为什么三者不能得兼,如果都满足了cap
如果强制要求一致性,如果有节点故障了,整个系统都需要不可用才能保证c,这个时候我们需要作出妥协,非故障的节点可以用,允许分区容错。这种情况下我们就是只满足ap了。
参考 http://baike.baidu.com/link?url=pPqOEumD_No_ZscGQMq1jVTiNCufv-EbWl0s0VCuM6hI0mBX1BNcPNXg8ZVvsG08cfNOmVYZBA586eVqfRRXba
http://blog.csdn.net/chen77716/article/details/30635543