現在的位置: 首頁 > 資料庫 > 正文

MongoDBReplicaSets配置有哪些方法?MongoDBReplicaSets配置有哪些問題

2020年07月02日 資料庫 ⁄ 共 881字 ⁄ 字型大小 評論關閉

  我們知道,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技術的優質平台!

抱歉!評論已關閉.