分布式一致性算法

1. 定义

数据不能存在单个节点(主机)上,否则可能出现单点故障,多个节点(主机)需要保证具有相同的数据

2. 分类

2.1. 强一致性

保证系统改变提交以后立即改变集群的状态,主要模型:

  • Paxos
  • Raft(muti-paxos)
  • ZAB(muti-paxos)

2.2. 弱一致性

也叫最终一致性,系统不保证改变提交以后立即改变集群的状态,但是随着时间的推移最终状态是一致的,主要模型:

  • DNS系统
  • Gossip协议

3. 举例

  • Google的Chubby分布式锁服务,采用了Paxos算法
  • etcd分布式键值数据库,采用了Raft算法
  • ZooKeeper分布式应用协调服务,Chubby的开源实现,采用ZAB算法