節點我有安裝兩臺服務器都通過遵循DataStax網站的文檔運行卡桑德拉。我的當前設置是有卡桑德拉兩次與冗餘
1種子節點(在兩個yamls配置)
在運行時,兩個節點都是向上(經由nodetool測試時),並似乎都已經正確複製的數據,但我注意到,當我關閉種子節點時,另一個節點不允許客戶端連接(既不通過它們的API,也不通過連接到cqlsh),這是一個問題。
我的要求是有兩個服務器是彼此完美的副本,如果一個服務器是臨時關閉的(例如由於磁盤空間故障),另一個服務器可以接管請求,直到破損的服務器返回線上。
鑑於這種requriement,我有以下問題:
- 我需要設置兩個節點作爲「種子」節點?
- 我怎麼會確保一切都在兩個服務器之間複製?這是自動發生還是有一些設置需要設置的地方?
提前許多感謝,
我要補充一點,有2個節點,你可以做RF = 2,讀CL = 1和CL寫= 1;但是,這意味着您可能正在讀取陳舊的數據,直到它被複制到其他節點。如果只有一個節點處於活動狀態,它將允許您讀寫,但是您會犧牲一致性。 – ashic
非常感謝您的回答。很好的解釋。最後一個問題,如果我選擇讀取/寫入CL = 1的2個節點(我知道它不好,但我的測試階段只有2臺服務器可供我使用,並且只能稍後添加更多服務器),我是否需要將兩個節點都設置爲「種子」,以便在一個節點/服務器出現故障的情況下,連接仍然有可能? – kha
種子不*那*關鍵。這是你給客戶的地址,假設種子節點會穩定。客戶端將連接到種子,並獲取有關羣集其餘部分的信息。然後它將連接到羣集中的任何節點以進行事務處理。如果你不指定種子,信息可能通過八卦傳播。如果您告訴您的客戶端連接到非種子,它不應該真的爲您的兩個節點設置造成問題。如果您將兩者都標記爲種子,如果客戶端連接到一個,並且它已關閉,它將連接到另一個。我會將它們標記爲種子。 – ashic