CAP原理与BASE思想
相对于ACID的约束:
分布式领域提出了CAP理论:
Consistency(一致性),数据一致更新,所有分布式节点数据变动是一致的(可以是最终一致)
Availability(可用性),好的响应性能
Partion tolerance(分区容忍性),节点变化的容错性,服务的可靠性
分布式系统只能同时满足二点,没法三者兼顾。
ACID是高一致性+可用性,分区比较困难
BASE思想是反ACID模型,牺牲高一致性,获得高可用性或可靠性(吞吐量)
Basically Available 基本可用。支持分区失败
Soft state 软状态,状态可以有一段时间不同步
Eventually consistent 最终一致,数据最终一致,不要求时时高一致
NOSQL大致都是BASE思想的提现,忽略高一致性,获得高可用,NOSQL大致有两个流派:
key-value存储
领域模型+分布式缓存+存储
注意:
CAP的一致性和ACID的一致性:
ACID的一致性更多强调数据在变化的过程中遵循规则,其他事务在事务的过程中看到的数据是一致的。
ACP的一致性是多个分布式节点接收到的数据和响应应该是一致的。不会区别对待。