一致性是一个比较抽象的概念,涉及computer science的多个领域,例如:html
Sequential consistency: Java内存模型 数据库
Causal consistency(因果一致性)apache
若是Process A通知Process B它已经更新了数据,那么Process B的后续读取操做则读取A写入的最新值,而与A没有因果关系的C则能够最终一致性。缓存
Read-your-writes consistencysession
若是Process A写入了最新的值,那么Process A的后续操做都会读取到最新值。可是其它用户可能要过一会才能够看到。架构
Session consistency并发
此种一致性要求客户端和存储系统交互的整个会话阶段保证分布式
Read-your-writes consistency性能
Hibernate的session提供的一致性保证就属于此种一致性。设计
Monotonic read consistency
此种一致性要求若是Process A已经读取了对象的某个值,那么后续操做将不会读取到更早的值。
Monotonic write consistency
此种一致性保证系统会序列化执行一个Process中的全部写操做
2、ZooKeeper的保证(Consistency Guarantees)
ZooKeeper是一个高效的、可扩展的服务,read和write操做都被设计为快速的,read比write操做更快。
一、顺序一致性(Sequential Consistency):从一个客户端来的更新请求会被顺序执行。
二、原子性(Atomicity):更新要么成功要么失败,没有部分红功的状况。
三、惟一的系统镜像(Single System Image):不管客户端链接到哪一个Server,看到系统镜像是一致的。
四、可靠性(Reliability):更新一旦有效,持续有效,直到被覆盖。
五、时间线(Timeliness):保证在必定的时间内各个客户端看到的系统信息是一致的。
出处