微服务cap理解

以前理解的cap一直是不对的,我次奥

CAP原则
C: 一致性(Consistency)
A: 可用性(Availability)
P: 分区容错性(Partition tolerance)

BASE原则
BA: 基本可用(Basically Available)
S:软状态( Soft State)
E: 最终一致性(Eventual Consistency)

CAP原则是三选二

BASE原则是CAP的折中, C、A、P三个都要,但不用100%的保证每一个原则

分布式系统肯定优先保证P,多数时候是在C和A之间做权衡选择

P(分区容错):
一般是针对多节点部署的系统,分区指网络分区(由于网络原因节点之间无法通信同步数据),容错指系统节点出现分区了对外依然要能提供服务,不能说分区了导致整个系统不能提供服务了。在满足P的前提下, client发一条数据给节点1,因为分区产生这条数据暂时无法同步给节点2。
如果要保证整个分布式系统的数据一致性©,就不能报这个可用性(A),也就是整个分布式系统对外要暂时不可用,不然client对节点1和节点2的数据查询的结果不一致。
同样的道理,如果要保证高可用C那肯定要栖牲掉一致性A了,因为数据还没在节点间同步,client查询节点1和节点2的这条数据结果肯定不一样

你可能感兴趣的:(java,开发语言,后端)