分布式CAP理论与BASE思想

一:CAP理论
分布式领域中,存在一个理论,称之为CAP理论。
Consistency(一致性):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
Availability(可用性):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
Partition tolerance(分区容错性) :以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。所以我们只能在一致性和可用性之间进行权衡。
目前认为:任何分布式系统只可同时满足二点,没法三者兼顾
传统的关系型数据库都是高一致性。例如,一旦用户变更了记录,是可以获取最新的变更后的数据。但是往往我们对于数据的要求没有这么严格,在一定的时间范围内,我们是可以接受一定的延迟的,也就是最终数据一致性即可。这就引出了另一个概念-Base思想。

二:Base
Basically Available(基本可用):支持分区失败。
Soft state(软状态): 状态可以有一段时间不同步,异步。
Eventually consistent(最终一致):最终数据是一致的就可以了,而不是时时高一致。
现在NOSQL运动丰富了拓展了BASE思想,可按照具体情况定制特别方案,比如忽视一致性,获得高可用性等等,NOSQL应该有下面两个流派:
1. Key-Value存储,如Amaze Dynamo等,可根据CAP三原则灵活选择不同倾向的数据库产品。
2. 领域模型 + 分布式缓存 + 存储 (Qi4j和NoSql运动),可根据CAP三原则结合自己项目定制灵活的分布式方案,难度高。

完!

猜你喜欢

转载自blog.csdn.net/ruben95001/article/details/78364340