Cassandra

Cassandra 一致性級別

  • November 9, 2017

我有 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 個節點處於活動狀態,您也只能獲得一個副本。

引用自:https://dba.stackexchange.com/questions/190555