CAP和BASE用于分布式系统中
CAP:
一致性(Consistency): 数据一致更新,所有数据变动都是同步的。
可用性(Availability):好的响应性能。
分区容忍性(Partition tolerance):可靠性。
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
一般情况:分区容忍性一般是基本要求,可靠性与可用性之间取一个平衡。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
BASE:
BASE是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency)。
BASE理论是对CAP理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。
BASE思想主要强调基本的可用性,如果你需要High 可用性,也就是纯粹的高性能,那么就要以一致性或容忍性为牺牲,BASE思想的方案在性能上还是有潜力可挖的。
ACID和BASE的区别与联系
:
ACID是传统数据库常用的设计理念,追求强一致性模型。
BASE支持的是大型分布式系统,提出通过牺牲强一致性获得高可用性。
ACID和BASE代表了两种截然相反的设计哲学。
在分布式系统设计的场景中,系统组件对一致性要求是不同的,因此ACID和BASE又会结合使用
。