2015-10-03 123 views
0

我想要在4臺機器上覆制數據。卡桑德拉可能嗎?

其中3個是託管在數據中心的服務器,有一個開發機器在開發未完成時可以脫機。

3個數據中心服務器將成爲所有數據的主要來源。開發機器不會成爲任何數據的主要來源。但它將擁有其他3臺機器的所有數據。

當開發機器聯機時,它將與其他節點同步,然後所有來自開發環境的查詢將在開發機器上的Cassandra實例上運行。或者至少,我想,我會從本地機器得到最快的迴應。

如果可能的話,即使開發機器沒有連接到互聯網,我也希望能夠在開發機器上針對Cassandra實例運行查詢(只讀)。

回答

1

我在這裏考慮的是你有兩個數據中心DC1有3個節點,DC2有1個節點本地一個。 考慮DC2中節點的停機時間,並設置hintedhandoff的時間,因此如果down節點聯機並且它尚未標記爲死機,它將嘗試同步數據。

1

你這裏有兩種基本的選擇:

1)建立一個數據中心2集羣,如阿夫塔卜提到,其中一個數據中心是開發節點。這將允許您在斷開連接時使用LOCAL_ONE一致性來查詢它,並且它將按預期工作。我會完全禁用提示,並且假設您需要在很長一段時間內斷開連接時進行修復/重建。請注意,對此節點執行的寫操作將複製到生產環境中,因此您需要確保您的開發不會意外執行任何意外刪除/覆蓋,或者您將在重新連接時複製這些文件。

2)使用sstableloader,cassandra的批量加載工具,保持dev服務器斷開連接,並將數據從生產加載到dev。僅在必要時複製數據,並且僅在一個方向上覆制數據。