CAP 与 BASE
CAP:分布式系统最多同时满足一致性(C)、可用性(A)、分区容错(P)中的两个。网络分区时,要么保证一致(拒绝部分请求),要么保证可用(可能读到旧数据)。
BASE:对 CAP 的工程化妥协。BA(Basically Available):允许部分不可用;S(Soft state):中间状态可存在;E(Eventually consistent):最终一致。牺牲强一致换可用性和性能。
实际系统:金融、库存选 CP;社交、推荐选 AP。需根据业务权衡。
一致性
强一致:读必读到最新写,实现成本高(如 Paxos、Raft 同步复制)。
最终一致:允许短暂不一致,通过异步复制、冲突解决最终一致。适合多数互联网场景。
因果一致:有因果关系的操作顺序一致;无因果的可不同节点看到不同顺序。向量时钟、版本向量可追踪因果。
一致性协议:Paxos/Raft 用于共识;Gossip 用于最终一致传播;两阶段提交(2PC)用于分布式事务,存在阻塞和协调者单点问题。
限流与熔断
限流:保护下游,防止过载。固定窗口:单位时间内的请求数限制,边界处可能突发。滑动窗口:平滑边界。漏桶:固定流出速率,平滑流量。令牌桶:固定放入速率,允许突发(桶有容量时)。
熔断:下游故障时快速失败,避免雪崩。状态:关闭 → 打开(失败率超阈值)→ 半开(试探恢复)。如 Hystrix、Resilience4j。
降级:非核心功能关闭或返回默认值,保证核心可用。