Cassandra

Cassandra 多 DC:在 LOCAL 上寫入並從任何 DC 讀取

  • March 25, 2019

我們使用多數據中心 (DC) cassandra 集群。在寫入集群期間,我只希望 LOCAL DC 在其節點上執行寫入,因為我們已經僅根據啟動寫入的源將寫入請求路由到所需的 DC。因此,我只希望 LOCAL DC 處理寫入,而不希望其他 DC 在其節點上執行寫入。但後來由於跨 DC 節點之間的複制,我希望寫入的數據能夠跨 DC 複製。當我首先將寫入限制為僅一個 DC 時,是否可以跨 DC 複製?如果我在寫入操作期間未打開與位於不同 DC 中的 REMOTE 主機的連接,以後是否可以在 DC 之間複製數據。為什麼我肯定需要所有 DC 中的數據副本是因為在從集群讀取數據期間,

有人對此有解決方案嗎?

數據總是寫入所有 DC,LOCAL一致性級別只是說確認應該來自本地節點,而不是來自其他 DC…

DSE 架構指南(也可以查看那裡的圖像):

在多個數據中心部署中,DataStax Enterprise (DSE) 通過選擇一個協調節點來優化寫入性能。客戶端應用程序聯繫的協調器節點將寫入請求轉發到每個其他數據中心中的一個副本,並使用特殊標籤將寫入轉發到其他本地副本。

如果寫寫一致性級別為LOCAL_ONELOCAL_QUORUM,則只有與協調節點位於同一數據中心的節點必須響應客戶端請求才能成功。使用LOCAL_ONELOCAL_QUORUM來減少地理延遲並減少對客戶端寫入請求的響應時間的影響。

PS 我建議閱讀本指南以了解 Cassandra/DSE 的工作原理 - 如果您有這些資訊,它會使事情變得更簡單。

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