我們知道,MongoDB不提供單機的數據安全性,取而代之的是提供了ReplicaSets的高可用方案。官方文檔中提到的案例是三個節點組成的ReplicaSets,這樣在其中任何一個節點宕機後都會自動選舉出新的Primary提供寫操作。下面學步園小編來講解下MongoDBReplicaSets配置有哪些方法?MongoDBReplicaSets配置有哪些問題?
MongoDBReplicaSets配置有哪些方法
配置方法
兩個節點的ReplicaSets,啟動後一個選舉成為Primary,一個成為Secondary。
MongoDBReplicaSets配置有哪些問題
問題
這時候如果Secondary宕機,那麼Primary會怎麼樣呢?Primary會立刻變成Secondary!這時候集群里沒有Primary了!為什麼會出現這樣的情況呢。
原因
這是和MongoDB的Primary選舉策略有關的,試想如果情況不是Secondary宕機,而是網路斷開,那麼兩個節點都會選取自己為Primary,因為他們能連接上的只有自己這一個節點。而這樣的情況在網路恢復後就需要處理複雜的一致性問題。而且斷開的時間越長,時間越複雜。所以MongoDB選擇的策略是如果集群中只有自己一個節點,那麼不選取自己為Primary。
解決方法
所以正確的做法應該是添加兩個以上的節點,或者添加arbiter,當然最好也最方便的做法是添加arbiter,aribiter節點只參與選舉,幾乎不會有壓力,所以你可以在各種閑置機器上啟動arbiter節點,這不僅會避免上面說到的無法選舉Primary的情況,更會讓選取更快速的進行。(因為如果是三台數據節點,一個節點宕機,另外兩個節點很可能會各自選舉自己為Primary,從而導致很長時間才能得出選舉結果)。
以上就是關於「MongoDBReplicaSets配置有哪些方法?MongoDBReplicaSets配置有哪些問題」的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平台!