云數(shù)據(jù)庫MongoDB版自動搭建好副本集,您可以直接操作副本集中的主節(jié)點和從節(jié)點。容災(zāi)切換、故障遷移等高級功能為您整體打包好,實例使用過程中對您完全透明。

副本集架構(gòu)

架構(gòu)圖
MongoDB副本集架構(gòu)通過部署多種節(jié)點來達到高可用和讀寫分離的效果,每個副本集實例包含一個主節(jié)點(Primary節(jié)點)、一個或多個從節(jié)點(Secondary節(jié)點)、一個隱藏節(jié)點(Hidden節(jié)點)和可選的一個或多個只讀節(jié)點(ReadOnly節(jié)點)。其中主節(jié)點、從節(jié)點和隱藏節(jié)點合起來統(tǒng)稱為“主備節(jié)點”。各節(jié)點的說明如下:
節(jié)點 功能 說明
主節(jié)點(Primary節(jié)點) 負責執(zhí)行和響應(yīng)數(shù)據(jù)讀寫請求。 每個副本集實例中只能有一個主節(jié)點。
從節(jié)點(Secondary節(jié)點) 通過操作日志(oplog)同步主節(jié)點的數(shù)據(jù),可在主節(jié)點故障時通過選舉成為新的主節(jié)點,保障高可用。
  • 通過從節(jié)點的連接地址進行連接時,只能讀取數(shù)據(jù)不能寫入數(shù)據(jù)。
  • 從節(jié)點具有高可用保障,即某個從節(jié)點故障時,系統(tǒng)會自動將其與隱藏節(jié)點切換,若未自動切換,您可以自行切換,從節(jié)點的連接地址保持不變。
    說明 如何切換從節(jié)點和隱藏節(jié)點,請參見切換節(jié)點角色

    觸發(fā)節(jié)點的角色切換后,會產(chǎn)生130秒內(nèi)的連接閃斷,建議您在業(yè)務(wù)低峰期操作或確保應(yīng)用具備重連機制。

隱藏節(jié)點(Hidden節(jié)點) 通過操作日志(oplog)同步主節(jié)點的數(shù)據(jù),可在從節(jié)點故障時接替該故障節(jié)點成為新的從節(jié)點,也可在只讀節(jié)點故障時接替該故障節(jié)點成為新的只讀節(jié)點,保障高可用。
  • 隱藏節(jié)點僅用作高可用,對客戶端不可見。
  • 隱藏節(jié)點不在“主節(jié)點的備用列表”中,不會被選舉為主節(jié)點,但會參與投票選舉主節(jié)點。
  • 每個副本集實例中只能有一個隱藏節(jié)點。
只讀節(jié)點(ReadOnly節(jié)點) 通過操作日志(oplog)從延遲最低的主節(jié)點或從節(jié)點同步數(shù)據(jù),應(yīng)用于有大量讀請求的場景,以減輕主節(jié)點和從節(jié)點的訪問壓力。兩個或以上只讀節(jié)點可以使用ReadOnly Connection String URI連接實現(xiàn)讀請求負載均衡。
說明 更多信息,請參見MongoDB只讀節(jié)點簡介
  • 只讀節(jié)點具有高可用保障,即某個只讀節(jié)點故障時,系統(tǒng)會自動將其與隱藏節(jié)點切換,若未自動切換,您可以自行切換,只讀節(jié)點的連接地址保持不變。
    說明 如何切換只讀節(jié)點和隱藏節(jié)點,請參見切換節(jié)點角色

    觸發(fā)節(jié)點的角色切換后,會產(chǎn)生130秒內(nèi)的連接閃斷,建議您在業(yè)務(wù)低峰期操作或確保應(yīng)用具備重連機制。

  • 只讀節(jié)點具有獨立的連接地址,適合獨立系統(tǒng)直連訪問,與已有主從節(jié)點的連接互不干擾。
  • 只讀節(jié)點不在“主節(jié)點的備用列表”中,不會被選舉為主節(jié)點,也不會參與投票選舉主節(jié)點。

擴展副本集節(jié)點

云數(shù)據(jù)庫MongoDB提供擴展節(jié)點功能,您可以按照業(yè)務(wù)需求增加從節(jié)點或只讀節(jié)點的數(shù)量,詳情請參見變更副本集實例配置
說明 每個副本集實例中僅包含一個隱藏節(jié)點,擴展節(jié)點時僅增加從節(jié)點或只讀節(jié)點,不會增加隱藏節(jié)點。

例如:某個業(yè)務(wù)場景下對數(shù)據(jù)庫有更高讀取性能需求,如閱讀類網(wǎng)站、訂單查詢系統(tǒng)等讀多寫少場景或有臨時活動等突發(fā)業(yè)務(wù)需求,按需增加從節(jié)點或只讀節(jié)點來彈性調(diào)整實例的讀取性能。