1. 定义
数据不能存在单个节点(主机)上,否则可能出现单点故障,多个节点(主机)需要保证具有相同的数据
2. 分类
2.1. 强一致性
保证系统改变提交以后立即改变集群的状态,主要模型:
- Paxos
- Raft(muti-paxos)
- ZAB(muti-paxos)
2.2. 弱一致性
也叫最终一致性,系统不保证改变提交以后立即改变集群的状态,但是随着时间的推移最终状态是一致的,主要模型:
- DNS系统
- Gossip协议
3. 举例
- Google的Chubby分布式锁服务,采用了Paxos算法
- etcd分布式键值数据库,采用了Raft算法
- ZooKeeper分布式应用协调服务,Chubby的开源实现,采用ZAB算法