簡體   English   中英

具有兩個成員的MongoDB Replicaset,很熱,可以防止在輔助節點斷開連接時成為主節點?

[英]MongoDB Replicaset with two members, hot to prevent Primary from becoming secondary when secondary disconnects?

將MongoDB與2個服務器的副本集一起使用時,如果輔助服務器出現故障,則主服務器將變為輔助服務器。 我希望它保持其主要狀態,即使次要發生故障也是如此。 顯然,由於該集合中沒有其他成員,因此選舉過程不能將超過50%的選票投給作為主要成員的主要成員,然后成為次要成員。

這就是為什么具有兩個活動節點的副本集應始終在單獨的服務器上包含仲裁器作為第三成員的原因。 仲裁者是不包含任何數據的mongod實例,但可以在初選中進行投票。

當輔助節點發生故障時,仍然會有仲裁者將其余節點選舉為主要節點。

仲裁程序是一個非常輕量級的過程,因此不需要專用的服務器。 但是出於明顯的原因,它不應該與副本集的另一個成員共享硬件。

我在Mongodb網站上找到了此代碼段,可以使用投票權重和優先級輕松解決此問題:{_id:'setName',成員:[{_id:0,主機:“”,優先級:1},{_id:1 ,主持人:“”,優先級:0,投票:0}]}

我嘗試了,它有效! 我可以關閉輔助服務器而不影響主服務器。

由於大部分內容都不在線,因此您無法選擇新的主要內容( http://en.wikipedia.org/wiki/Quorum )或將當前的主要內容保留在其中。

您必須始終在線擁有大部分設置,否則您將需要: http : //docs.mongodb.org/manual/tutorial/reconfigure-replica-set-with-unavailable-members/

如果我使用記憶力,我會記得@Asya專門說明這是因為一天結束時MongoDB無法知道是否存在網絡分區或該服務器實際上是那里的最后一個服務器,因此沒有大多數已配置的成員MongoDB只是不嘗試猜測一致性。

這是一個古老的問題,“如果某些東西不能發出聲音,它會掉下來嗎?”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM