2014-09-11 67 views
3

我對加快引導羣集和添加/刪除節點的過程感興趣(當然,在節點刪除的情況下,大部分時間都會耗盡節點)。我在源代碼中看到,種子節點不是自舉的,因此在等待八卦穩定時不睡眠30秒。因此,如果所有節點都被聲明爲種子,則創建羣集的過程將運行得更快30秒。我的問題是,這可以嗎?這有什麼缺點?在cassandra中是否有隱藏的要求,我們至少有一個非種子節點來執行引導(如以下question的答案中所建議的)?我知道我可以通過修改/etc/cassandra/cassandra-env.sh來縮短RING_DELAY,但是如果簡單地將所有節點設置爲種子將以某種方式更好或更快,那可能會更好。 (直觀地說,將所有節點設置爲種子必然存在缺點,因爲它似乎嚴格改善了啓動時間。)可以將所有cassandra節點設置爲種子嗎?

回答

3

好問題。不建議製作所有節點種子。您希望新的節點和節點出現後自動遷移正確的數據。 Bootstrapping這樣做。在沒有數據的情況下初始化新的羣集時,請關閉引導。爲了保持數據一致性,需要在其他時間啓動引導。 Cassandra 2.1添加了一個新的啓動選項-Dcassandra.auto_bootstrap = false:您可以啓動Cassandra,讓auto_bootstrap = false暫時生效,直到節點停止運行。當節點恢復時,默認auto_bootstrap = true將重新生效。創建羣集後,人們不太可能無限期地繼續下去 - 無需在每個節點上來回配置yaml。

在多個數據中心羣集中,種子列表應包含每個數據中心的至少一個節點。要防止閒聊通信中的分區,請在羣集中的所有節點中使用相同的種子節點列表。第一次節點啓動時,這是至關重要的。

這些建議在2.1 Cassandra文檔的幾個不同頁面上提到:http://www.datastax.com/documentation/cassandra/2.1/cassandra/gettingStartedCassandraIntro.html

相關問題