- CAP理论和 BASE理论
CAP是理论模型,BASE才是分布式落地方案
-
C 讲的是强一致性,也就是分布式系统中,集群中的节点的数据保持完全一致
-
A 讲的是系统可用性,即使出现网络分区或者异常,整个系统的功能仍然可用
-
BA 基本可用,是对A的一个妥协,比如秒杀场景下,或者雪崩的业务场景下,可以降级处理,使核心功能可用,而不是所有的功能可用。或者延迟完成,比如通过削峰限流,来延迟响应。
-
Soft Status:对应的是ACID里面的数据一致性的状态。也就是在一个时间节点上,集群中所有节点的数据,可能不一样
-
Eventurlly Consitence:最终一致性,BASE不保证强一致性,但是会通过共识协议最终实现各个集群节点状态的一致性,比如Zab协议、Raft协议
实际上强一致性意味着每次写的操作,必须要所有节点同时完成了数据同步,整个事务才算完成。
强系统可用性,在流量超过负载的时候,会压垮整个服务,而基本可用却可以牺牲非核心功能,保证核心功能可用
比如Zookeeper就是典型的BASE理论的践行者:事务操作的时候,只要过半节点完成了ACK,就可以提交事务响应客户端了。也就是不保证数据的强一致性和存在软状态。另外zk集群的leader会记录每个Node的数据状态,并且不停的尝试让Follower的数据和自己保持一致,这就是最终一致性。
网友评论