CAP理论
ConsistencyAvaiablity
Partition tolerance(分区容错性)
系统无法放弃一致性,如果放弃了,说明数据不可信
牺牲一致性,是说不使用强一致性,而是弱一致性
分布式系统的数据复制需求:
A、 可用性
将数据复制到多个主机上,消除单点故障
B、 性能
将数据分片,分布到多台主机上,可以提高并发度,从而提高系统性能
强一致性:
更新完成后,任何后续的读都会返回最新值
弱一致性:
更新完成后,不确保后续读会读到上次更新的最新值,但是尽可能在给定的时间内,会更新到最新值
最终一致性:
系统保证没有后续更新的前提下,系统始终返回上一次更新操作的的值
为了解决分布式系统中不一致性的问题,有大量的工程实践和理论,比如二阶段式提交和三阶段式提交,PAXOS算法等
PAXOS算法
ceph中的mon就是用paxos来保证一致性
Raft算法
比paxos更简单和高效的一致性算法
参考:http://www.jdon.com/artichect/raft.html