MongoDB複本集營運小結

來源:互聯網
上載者:User

標籤:增量   檢查   流量   降級   還需   除了   總結   就會   通訊   

 

前面的文章介紹了MongoDB複本集和分區叢集的做法,下面對MongoDB叢集的日常維護操作進行小總結:

MongDB複本集容錯移轉功能得益於它的選舉機制。選舉機制採用了Bully演算法,可以很方便從分布式節點中選出主節點。Bully演算法是一種協調者(主節點)競選演算法,主要思想是叢集的每個成員都可以聲明它是主節點並通知其他節點。別的節點可以選擇接受這個聲稱或是拒絕並進入主節點競爭。被其他所有節點接受的節點才能成為主節點。節點按照一些屬性來判斷誰應該勝出。這個屬性可以是一個靜態ID,也可以是更新的度量像最近一次事務ID(最新的節點會勝出)。1)MongoDB叢集的節點數量官方推薦MongoDB複本集的成員數量為奇數,且選舉要求參與的節點數量必須大於成員數的一半。假設MongoDB叢集有3個節點,那麼只要有2個節點活著就可以選舉;如果有5個,那麼活3個節點就可以選舉;如果有7個節點,那麼活4個就可以選舉.....MongoDB叢集最多允許12個複本集節點,其中最多7個節點參與選舉。這是為了減少心跳請求的網路流量和選舉話費的時間,心跳每2秒發送一次。MongoDB叢集最多12個複本集節點是因為沒必要一份資料複製那麼多份,備份太多反而增加了網路負載和拖慢了叢集效能;而最多7個節點參與選舉是因為內部選舉機制節點數量太多就會導致1分鐘內還選不出主節點,凡事只要適當就好。2)MongoDB心跳整個MongoDB叢集需要保持一定的通訊才能知道哪些節點活著哪些節點掛掉。MongoDB節點會向複本集中的其他節點每兩秒就會發送一次pings包,如果其他節點在10秒鐘之內沒有返回就標示為不能訪問。每個節點內部都會維護一個狀態映射表,表明當前每個節點是什麼角色、日誌時間戳記等關鍵資訊。如果是主節點,除了維護映射表外還需要檢查自己能否和叢集中內大部分節點通訊,如果不能則把自己降級為secondary唯讀節點。3)MongoDB同步MongoDB複本集同步分為初始化同步和keep複製。初始化同步指全量從主節點同步資料,如果主節點資料量比較大同步時間會比較長。而keep複製指初始化同步過後,節點之間的即時同步一般是增量同步處理。初始化同步不只是在第一次才會被處罰,有以下兩種情況會觸發:[1] secondary第一次加入,這個是肯定的。[2] secondary落後的資料量超過了oplog的大小,這樣也會被全量複製。

  

MongoDB複本集營運小結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.