一致性是一個比較抽象的概念,涉及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):保證在必定的時間內各個客戶端看到的系統信息是一致的。
出處