三高
- 高可用

- 高性能
- 高并发
CAP原则
设计分布式系统的难点在于如何使节点的状态保持一致。CAP理论就是在设计分布式系统时,处理数据一致性问题必须考虑的理论。CAP包括:一致性(consistency)、可用性(Availability)、分区容错性(partition-tolerance)。CAP定律说这三个特性在一个分布式系统中无法同时得到满足,最多满足两个。
C:所有节点的数据保持一致(强一致性:所有节点的数据都是最新的,加锁实现,影响系统的吞吐量)。
A:服务一直可用,在正常的响应时间内响应请求,这样就不能保证数据的一致性了。(不能使用加锁实现了,加锁需要强行等待,不符合高可用的要求)
P:分布式系统在某个节点或者网络分区发生故障时(节点挂掉了,或者节点之间出现网络问题无法实现实时通信),依旧能够对外提供服务,是分布式系统最基本的特性,
根据分布式系统的定义,这里P是一定要满足的,然后根据CAP原则,C和A之间只能选择一个。
BASE理论
BASE理论是CAP理论演化得到的,核心思想是不强调强一致性,而通过一定的方法获得最终一致性的效果。
- BA:Basically Abailable基本可用,是一种妥协,在出现节点故障或者系统过载时,通过牺牲非核心功能的可用性,保障核心功能稳定运行。
- 流量削峰
- 延迟响应,异步处理
- 体验降级(看到非实时数据或者采用缓存数据提供服务)
- 熔断、限流(拒绝部分请求)
- 故障隔离
- S:Soft State软状态,允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,允许不同节点的数据副本存在数据延迟。
- E:Eventually Consistent最终一致性,可以允许软状态的存在,但数据最终要保持一致性。