1. 程式人生 > >MongoDB副本(一主一備+仲裁)環境部署記錄

MongoDB副本(一主一備+仲裁)環境部署記錄

mar rim con 讀寫 就會 應用 color ring 部署過程

MongoDB復制集是一個帶有故障轉移的主從集群。是從現有的主從模式演變而來,增加了自動故障轉移和節點成員自動恢復。
MongoDB復制集模式中沒有固定的主結點,在啟動後,多個服務節點間將自動選舉產生一個主結點。該主結點被稱為primary,一個或多個從結點被稱為secondaries。
primary結點基本上就是master結點,不同之處在於primary結點在不同時間可能是不同的服務器。如果當前的主結點失效了,復制集中的其余結點將會試圖選出一個
新的主結點。

MongoDB復制集模式的好處:

  • 一切自動化。首先,復制集模式本身做了大量的管理工作,自動管理從節點,確保數據不會不一致。
  • 主節點掛掉後,會自動判斷集群中的服務器並進行故障轉移,推舉新的主節點。
  • 一個復制集集群支持1-7臺服務器,在一個復制集中各個服務器數據保持完全一致。

在一個MongoDB復制集集群中,各個服務器有以下幾種狀態:

  • Primary 主節點,一個復制集有且僅有一臺服務器處於Primary狀態,只有主節點才對外提供讀寫服務。如果主節點掛掉,復制集將投票選出一個備節點成為新的主節點。
  • Secondary 備用節點,復制集允許有多臺Secondary,每個備用節點的數據與主節點的數據是完全同步的。Recovering 恢復中,當復制集中某臺服務器掛掉或者掉線後數據無法同步,重新恢復服務後從其他成員復制數據,這時就處於恢復過程,數據同步後,該節點又回到備用狀態。
  • Arbiter 仲裁節點,該類節點可以不用單獨存在,如果配置為仲裁節點,就主要負責在復本集中監控其他節點狀態,投票選出主節點。該節點將不會用於存放數據。如果沒有仲裁節點,那麽投票工作將由所有節點共同進行。
  • Down 無效節點,當服務器掛掉或掉線時就會處於該狀態。復制集的從節點讀請求,也是在各個Driver層設置slaveOk的值來實現的。

如上介紹所知,mongodb中的復制可以在多臺服務器中同步數據。復制提供了冗余和增加了數據的高可用性,防止單個節點易丟失數據的可能性,也可以用來進行讀寫分離提高客戶端操作性能。復制集中各節點的mongodb實例有相同的數據集副本。主節點可以接收客戶端所有寫操作記錄到日誌中,從庫復制主庫的操作日誌記錄應用到其數據庫中。一個客戶端只能有一個主節點,如果主節點不可用(10秒內無法連接),復制集中將選一個成員節點作為主節點。

mongodb主備+仲裁的基本結構如下:

技術分享圖片

下面簡單介紹下MongoDB 副本集的部署過程:

MongoDB副本(一主一備+仲裁)環境部署記錄