2017-09-18 161 views
0

讓我們假設我有一個副本集(Master和一羣奴隸)!我想自動實現這樣一個事實,即一個新的mongodb節點可以自我註冊到副本集,而無需知道誰是主節點,也無需連接到它。從成員方添加成員到MongoDB副本集

是否有可能在不執行rs.add()shell命令(從主節點一側)的情況下將新成員添加到MongoDB副本集?

成員是否可以使用一些特殊參數將自己註冊到副本集?也許某種認證!

回答

1

是否有可能在不執行rs.add()shell命令(從主節點一側)的情況下將新成員添加到MongoDB副本集?

這是可能的,你可以從secondary memberforce選項執行rs.reconfig()。雖然請注意,使用rs.reconfig(){ force: true }可能會導致提交寫入的rollback。考慮一下由於網絡分區,你連接到一個無法看到大多數副本集成員的成員的情況。

更安全的方法是連接任何副本集成員,通過rs.status()確定主要成員,並通過主副本集執行rs.add()

參見database command isMaster()

是否有可能爲會員本身使用一些特殊的參數註冊到副本集?

從MongoDB v3.4.x開始,目前這是不可能的。出於各種原因,確保只有主要成員可以改變成員之間一致性的重要性。

相關問題