數據一致性意味著相同的數據在任何地方看起來都一樣。例如,帳單系統中的客戶地址必須與出貨系統中的地址一致。倉庫中的庫存數量必須與網站上的庫存數量一致。如果系統之間存在差異,就會導致決策錯誤。訂單可能會寄送到舊地址,顧客可能會購買到缺貨的產品。對於相互依賴的系統而言,資料一致性至關重要。
分散式系統難以保證資料一致性。跨多個伺服器複製的資料可能會失去同步。網路分區會將一個區域與其他區域隔離。兩個區域都接受寫入操作。當分區恢復時,資料就會發生衝突。 CAP 定理指出,一致性、可用性和分區容錯性可以兼得,但無法同時實現這三者。大多數分散式資料庫選擇可用性和最終一致性。這意味著資料會隨著時間的推移而趨於一致,但在一段時間內,不同節點可能會看到不同的值。強一致性需要協調,這會增加延遲。具體選擇取決於應用程式。銀行帳簿需要強一致性。社群媒體資訊流可以容忍最終一致性。正確的答案並非放諸四海皆準。它取決於數據不一致時哪些環節會受到影響。
一致性模型
- 強——所有節點立即都能看到相同的數據
- 最終——節點會隨著時間而收斂
- 因果關係-相關操作依序進行。
- 閱讀自己寫的內容—您可以立即看到自己的更新。
一致性是一個連續光譜。問題在於應用程式在崩潰之前能夠容忍多大的不一致性。
Comments
No comments yet. Be the first to share a thought.
Leave a comment