1.CAP原则
C:数据强一致性、A:可用性HA、P:分区容错性,这三个不能同时共存,在分布式系统中,只能选择舍去其中一个,一般都是保留CP或者AP。
为什么要舍弃C或者A呢?对于分布式系统来说,网络故障时无法估计的,出现网络分区是不可避免的,因此系统必须具备分区容错性,所以必须保证P,在分布式系统中一般都会保证AP原则
对于分布式系统而言,想要保证C就必须得舍弃A,因为当需要保证数据强一致性的时候,各个节点数据需要进行同步,同步需要时间,此时其他的服务就没办法提供服务,所以就保证不了A
对于分布式场景,需要尽可能的保证可用性,所以AP是必须的,当然有些业务对数据一致性要求非常高的,例如交易,这种情况就要保证数据强一致性了,即保证CP,即使服务不可用,也得保证数据一致。
2.BASE理论
BASE 是 Basically Available(基本可用)、Soft state(软状态)和 Eventually consistent(最终一致性)三个短语的简写。是 CAP 定理对于一致性与可用性权衡的结果。
- 基本可用:基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。但是,这绝不等价于系统不可用。比如说天猫中主要的交易可用,修改密码,更换头像等操作不可用,核心业务可以正常使用,次要的可以暂时不可用。
- 软状态:也就是说数据有一个中间状态,其实就是数据不一致的现象,允许数据在一定的时间内不一致。
- 最终一致性:说明的是数据可以存在不一致的现象,但是通过一段时间以后,必须保证数据一致,这就是最终一致性。
业界比较推崇是最终一致性级别,但是某些对数据一致要求十分严格的场景比如银行转账还是要保证强一致性。