Cassandra
Cassandra 一致性級別
我有 3 個虛擬 Cassandra 節點集群。節點 1、節點 2 和節點 3。
我編寫了一個小的 python 程式碼來將數據批量載入到其中。
第一次只有三個節點中的兩個節點可用,當我執行 python 程式碼時,節點 1 和節點 2
session.default_consistency_level = 2
我得到了錯誤:
cassandra.Unavailable: Error from server: code=1000 [Unavailable exception] message="Cannot achieve consistency level TWO" info={'consistency': 'TWO', 'required_replicas': 2, 'alive_replicas': 1}
之後,我將我的第三個節點(Node3)上線並執行了 python 程序,它執行成功。
據我了解,一致性級別 = 2意味著每次應該至少有 3 個節點中的 2 個可用。
謝謝!
一致性級別是指所需的副本數,但存在的總副本數與節點數無關。它由您的
Replication_Strategy
. 如果您對此鍵空間的策略只有 2 個副本,那麼在很多情況下 CL 為 2 會失敗。對於節點 A、B 和 C
想像一下你想要的數據已經被複製到 A 和 B。
但是只有A和C還活著。即使 2 個節點處於活動狀態,您也只能獲得一個副本。