CAP 能帮助我们做什么?
分析场景
触达本质
合理选型
解决问题
C (Consistency):一致性,访问任意节点得到的数据都是一致的 A (Availability):可用性,保证能响应用户 P (Partition Torlerance):跨网络分区容忍性,是否容忍网络的故障或异常
CAP 能同时满足吗?

不能
CAP 为何不能同时满足?

假设按照图中这个架构分析,读写做了分离,写主库读从库,分析:
主库和从库垮网络,所以跨网络分区容忍性必须满足 客户端1写mysql-M,为满足一致性C要求,mysql-S1和mysql-S2同步mysql-M的数据期间不能给客户端2提供服务,否则客户端2会读到不一致的数据,只有同步完,然后提供服务,客户端2才能读到一致性的数据,但是为了满足一致性C的要求,同步期间不提供服务,服务不可用导致可用性A不满足,此时AC不能共存 客户端1写mysql-M,为了不影响给客户端2提供服务,同步期间不能停止mysql-S1和mysql-S2的服务,此时满足了可用性A的要求,但是客户端读到的数据可能不一致,读mysql-S1一个结果,读mysql-S2一个结果,此时一致性C的要求不满足,此时AC又不能共存
若图中架构要想满足AC,就不能垮网络,此时不能满足P
文章转载自老码农空杯修行记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




