讓我們假設我有一個副本集(Master和一羣奴隸)!我想自動實現這樣一個事實,即一個新的mongodb節點可以自我註冊到副本集,而無需知道誰是主節點,也無需連接到它。從成員方添加成員到MongoDB副本集
是否有可能在不執行rs.add()shell命令(從主節點一側)的情況下將新成員添加到MongoDB副本集?
成員是否可以使用一些特殊參數將自己註冊到副本集?也許某種認證!
讓我們假設我有一個副本集(Master和一羣奴隸)!我想自動實現這樣一個事實,即一個新的mongodb節點可以自我註冊到副本集,而無需知道誰是主節點,也無需連接到它。從成員方添加成員到MongoDB副本集
是否有可能在不執行rs.add()shell命令(從主節點一側)的情況下將新成員添加到MongoDB副本集?
成員是否可以使用一些特殊參數將自己註冊到副本集?也許某種認證!
是否有可能在不執行rs.add()shell命令(從主節點一側)的情況下將新成員添加到MongoDB副本集?
這是可能的,你可以從secondary memberforce
選項執行rs.reconfig()。雖然請注意,使用rs.reconfig()
和{ force: true }
可能會導致提交寫入的rollback。考慮一下由於網絡分區,你連接到一個無法看到大多數副本集成員的成員的情況。
更安全的方法是連接任何副本集成員,通過rs.status()確定主要成員,並通過主副本集執行rs.add()。
是否有可能爲會員本身使用一些特殊的參數註冊到副本集?
從MongoDB v3.4.x開始,目前這是不可能的。出於各種原因,確保只有主要成員可以改變成員之間一致性的重要性。