Failover
MongoDB 故障轉移時間
我有一個包含六個節點的 MongoDB 2.4 副本集和一個在測試環境中執行的仲裁器。我正在測試故障轉移響應時間,大約是四十五秒。
請記住,讀取設置為次要優先,因此在此期間只有寫入中斷。所以它沒有完全失敗那麼糟糕,但它是一個問題。
我對縮短該時間進行了一些研究,似乎將它設置得如此之高是為了避免在滯後的連接上發生故障並避免“震盪”,有些人將其描述為快速發生的多次選舉。過去修改原始碼,我真的沒有找到減少故障轉移時間的方法。
有什麼辦法可以把這個時間縮短到三十秒以下?越低越好。
給次要更高的優先級怎麼樣?
local.system.replset.members[n].priority
將 master 設置為 5,將要故障轉移的輔助設置為 4,第三個設置為 3,依此類推。
這樣,選舉的問題就會減少。
請參閱3.0 文件
副本集故障轉移需要多長時間?
它會有所不同,但副本集會在一分鐘內選擇一個新的主節點。
副本集的成員可能需要 10-30 秒才能聲明主節點不可訪問。這會觸發選舉。選舉期間,集群不可寫入。
選舉本身可能還需要 10-30 秒。