2010-02-24 49 views
10

當然可以運行單個節點集羣,但我想要一定程度的容錯。對於Cassandra集羣,我絕對需要至少3個節點/服務器還是2個足夠?

目前我能負擔得起租用兩臺服務器(8GB RAM,私有VLAN @ 1GigE),而不是3

我的理解是,3個節點是需要的卡桑德拉集羣的最低,因爲有之間不存在可能多數2個節點,並且需要大部分用於解決版本衝突。哦,等等,我是在想「矢量鍾」還是Riak?確認! Cassandra使用時間戳來解決衝突。

對於2個節點,建議的讀/寫策略是什麼?我應該通常寫入所有(兩個)節點並從一個(N = 2; W = N/2 + 1; W = 2/2 + 1 = 2)讀取? Cassandra會像往常一樣使用hinted-handoff,即使是2個節點,是嗎?

這兩臺服務器位於相同的數據中心FWIW中。

謝謝!

回答

18

如果你需要一個RF = 2,clustersize = 2的系統可用性,那麼你就不能使用所有或當一個節點出現故障,你將無法寫。

這就是爲什麼人推薦3個節點,而不是2,因爲這樣你可以做法定讀取寫入+,而且還有既堅固一致性和可用性,如果一個節點出現故障。

只有2個節點,您可以選擇是否希望在單個節點故障(使用ONE寫入)時強烈的一致性(使用ALL寫入)或可用性,但不能同時使用兩者。當然,如果你用ONE寫cassandra會根據需要做暗示的切換等,以使它最終一致。

+0

這是否仍然正確?在您的回答中,似乎「一致性級別1」的含義更像是當前cassandra版本上的一致性級別ANY。我假設在某個時刻任何人都得到了分手? – 2014-02-28 22:48:19

+0

當您的節點數等於您擁有的副本數時,ONE和ANY是等同的。 – jbellis 2014-03-19 20:20:19

相關問題