分布式 KV 存储临时失效时序图
CAP理论作为分布式系统的基石,是必须要理解和撑握的内容。
CAP理论
CAP定理又称为布鲁尔定理,它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency):返回的值必须是正确的
可用性(Availabiltiy):不能有失连、超时等不可用状态,返回值不一定是正确的
分区容错性(Partition tolerance):即系统在遇到某个节点或者网络故障时,仍然能够对外提供满足一致性或者可用性的服务。
CAP分析
CA without P:假设不分区,CA是可以保证的。可是分区不是想不想的问题,而是始终存在的。
CP without A:假设不要求A,每个请求在服务器间做强一致,除了响应时间得不到保证外,是可以保证CP的,如传统分布式事务数据库。
AP without C:假设保证最终一致性,有高可用并允许分区。如:NoSQL。
CAP选择
对于多数互联网应用的场景,主机众多,部署分散,而且集群规划越来越大,节点故障和网络故障是常态,而且要保证高可用,即采用AP并实现最终一致性,虽然某些地方会影响用户体验,但是总体是可控的。
对于财务类的场景,C必须保证。节点故障和网络故障宁可停止服务,保证CA,舍弃P。
所以,在实际应用时,要根据应用场景决定,合适才是最好的。
时序图
注:采取“保证AP并实现最终一致性”方案
连接
正常写入
失效写入
恢复
评论