CAP定理:一个分布式系统不能同时满足一下三项
(假设一个分布式系统有A、B两个节点)
- Consisteny(一致性)
节点A和节点B有相同的数据。 - Availability(可用性)
客户端的每个请求都能在合理的时间内获得响应(不一定要是最新的数据,只强调有响应)。 - Partition tolerance(分区容错性)
当节点A、B之间的网络出现问题之后,系统依然能正常提供服务。
根据CAP定理,一个分布式系统只能有CA,CP,AP三个选项。
对CA的组合,既要保证可用性又要保证一致性,分布式系统不可能达到这一点,单一节点的传统的RDBMS可以做到CA。(关系型数据库的事务具备AICD四大特性。)
剩下就是CP和AP了。对于CP,当A、B间出现网络故障时,拒绝新的写入操作,但是还允许读过去的数据。
对于AP,放弃了一致性的要求,所以客户端向A写入新的数据,下一步从B中读取的数据就不一定是最新的;尽管没有办法保证强一致性,但是可以保证数据的最终一致性。



