Mongodb
MongoDB 副本集 - 選舉延遲
我已經為 3 個具有成功副本集的 mongo 數據庫實例進行了本地設置。(1 個小學,2 個中學)。
如果我終止主實例,其中一個輔助實例將變為主實例,但大約需要 10 秒。
有什麼辦法可以減少時間。
我已更新 rs.config 如下:
config = rs.config() { "_id" : "rs0", "version" : 3, "protocolVersion" : NumberLong(1), "members" : [ { "_id" : 0, "host" : "127.0.0.1:27020", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 1, "host" : "127.0.0.1:27021", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 }, { "_id" : 2, "host" : "127.0.0.1:27022", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : NumberLong(0), "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatIntervalMillis" : 1000, "heartbeatTimeoutSecs" : 3, "electionTimeoutMillis" : 10000, "catchUpTimeoutMillis" : 2000, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 }, "replicaSetId" : ObjectId("5976e7bd5b7837e0fbba2871") } }
編輯
我已經重新安裝了 MongoDB 企業版:
MongoDB shell version: 3.2.15
是的!在這裡檢查。
你可以調整
- settings.heartbeatTimeoutSecs
- settings.electionTimeoutMillis
- settings.catchUpTimeoutMillis
- settings.heartbeatIntervalMillis
對於那些從 3.0 或更早版本開始執行 MongoDB 的人,您可能沒有,
protocolVersion
或者它可能被設置為0
. 如果您現在執行的是 3.2.12+ 或 3.4+ 版本,我們建議您升級您的 RS 以使用 protocolVersion 1。這應該會大大提高選舉新主節點的速度。