1. 核心理论
CAP定理:
- 一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)三者不可兼得
- 实际中通常选择CP(如ZooKeeper)或AP(如Cassandra)架构
一致性模型:
- 强一致性:线性一致性(Linearizability)
- 弱一致性:最终一致性(Eventual Consistency)
- 折中方案:顺序一致性(Sequential Consistency)、因果一致性(Causal Consistency)
2. 主要实现技术
共识算法:
Paxos:基础算法,难实现但理论完备(多数派同意+编号最大的提案)
Raft:易理解的替代方案(通过选举唯一 Leader 来接收所有写请求,并由 Leader 将操作日志按顺序复制到多数节点,确保集群数据强一致)
ZAB:ZooKeeper专用协议
工程实践:通常需要5节点集群容忍2个故障
复制技术:
主从复制:单主节点写入(MySQL)
多主复制
无主复制
事务控制:
2PC(两阶段提交):存在阻塞问题
3PC(三阶段提交):解决部分阻塞但仍有问题
3. 高级机制
版本控制:
向量时钟(Vector Clocks):检测并发事件
版本向量(Version Vectors):多副本场景
冲突处理:
数学保证收敛
操作转换(OT):实时协作系统常用
混合时钟:
结合物理时钟和逻辑计数器
原子钟+GPS实现时钟同步
4. 工程实践方案
数据分片+副本:
每个分片独立维护一致性
典型配置:3副本+RAFT协议
读写策略优化:
写操作:必须同步到多数节点(W > N/2)
读操作:可配置一致性级别(ALL/QUORUM/ONE)
ALL:所有副本(N/N)
QUORUM:多数派(⌈N/2⌉+1)
ONE:任意1个副本
5. 选择建议
业务需求分析:
金融交易:强一致+性能妥协
社交网络:最终一致+高可用
性能权衡:
强一致:延迟增加30-100ms
跨地域部署:考虑物理延迟下限
混合方案:
关键路径强一致
非关键最终一致