Private Cloud v4.18.05 專用 Edge
關於 Cassandra 複製係數
Cassandra 會將資料備用資源儲存在多個節點中,以確保可靠性和容錯能力。 每個 Edge Keyspace 的複製策略會決定備用資源所在的節點 位置。
Cassandra 叢集中鍵空間的備用資源總數稱為 索引鍵空間的「複製係數」。如果其中一個複製係數, Cassandra 叢集中每個資料列的複本。兩個複製因子代表 副本,而每個副本都位於不同節點上。所有備用資源都一樣重要; 沒有主要備用資源或主要備用資源。
在生產系統中,每個資料中心有三個以上的 Cassandra 節點,預設的 邊緣金鑰空間的複製係數為三個一般來說,複製係數是 不得超過叢集中的 Cassandra 節點數量。
請使用以下程序查看 Cassandra 結構定義,其中會顯示複製係數。 :
- 登入 Cassandra 節點。
- 執行下列指令:
/opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
其中
$(hostname -i)
解析為 Cassandra 節點的 IP 位址。或是您 可以將$(hostname -i)
替換為節點的 IP 位址。
針對每個索引鍵空間,您會看見下列格式的輸出內容:
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
可以看到資料中心 1 的預設複製係數是 dc-1
kms
索引鍵空間是三個
安裝三個 Cassandra 節點
如果您將額外的 Cassandra 節點新增至叢集,預設的複製因子不會 可能會受到影響
舉例來說,如果您將 Cassandra 節點數量增加為六個,但保留複製工作 原因是第 3 個因素是 Cassandra 節點,您無法確保所有 Cassandra 節點都有所有資料的副本。如果 複製因數越多,節點資料的機率越高 才會存在於其餘的節點上複製係數較高的缺點增加 延遲時間計算的是資料寫入作業延遲時間
關於 Cassandra 一致性等級
Cassandra 一致性等級定義為必須達到的 Cassandra 節點數量下限 進行讀取或寫入作業後,系統才會將作業視為成功。 可將不同一致性等級指派給不同的 Edge 鍵空間。
連線至 Cassandra 以執行讀取和寫入作業時,訊息處理器與管理機制
伺服器節點通常會使用 Cassandra 值為 LOCAL_QUORUM
實現
指定鍵空間的一致性等級。不過,部分索引鍵空間定義為使用
一致性等級設為 1
資料中心的 LOCAL_QUORUM
值計算方式如下:
LOCAL_QUORUM = (replication_factor/2) + 1
如上所述,在
三個 Cassandra 節點因此,LOCAL_QUORUM
的預設值 =
(3/2) +1 = 2 (該值會無條件捨去為整數)。
當 LOCAL_QUORUM
= 2 時,資料中至少有兩個 Cassandra 節點 (共兩個 Cassandra 節點)
中心必須回應讀取/寫入作業,作業才能成功。若為三個節點
若是 Cassandra 叢集,叢集可容許一個節點停止運作。
透過將一致性等級指定為 LOCAL_QUORUM
,Edge 可避免延遲
要求驗證多個資料中心之間的作業如果索引鍵空間使用 Cassandra
QUORUM
值做為一致性等級,讀取/寫入作業數必須為
在所有資料中心都經過驗證
如何查看邊緣訊息處理器或管理伺服器節點使用的一致性等級:
- 登入訊息處理器節點。
- 變更為 /opt/apigee/edge-message-processor/conf 目錄:
cd /opt/apigee/edge-message-processor/conf
- 為寫入一致性:
grep -ri "write.consistencylevel" *
- 讓讀取一致性:
grep -ri "read.consistencylevel" *
- 登入 Management Server 節點。
- 變更為 /opt/apigee/edge-management-server/conf 目錄:
cd /opt/apigee/edge-management-server/conf
- 重複第 3 與第 4 個步驟。
如果在叢集中加入額外的 Cassandra 節點,一致性等級不會受到影響。