再看MongoDB複本集

來源:互聯網
上載者:User

再看MongoDB複本集

因為MongoDB使用記憶體對應檔,所以必須使用64位版本。

官方如下:http://www.mongodb.org/downloads

實驗環境使用的Mongodb版本為mongodb-linux-x86_64-2.6.0

由三台虛擬機器搭建,配置為單核,1G記憶體。

實驗環境如下:

MongoDB的複本集不同於以往的主從模式。

在叢集Master故障的時候,複本集可以自動投票,選舉出新的Master,並引導其餘的Slave伺服器串連新的Master,

而這個過程對於應用是透明的。可以說MongoDB的複本集是內建容錯移轉功能的主從複製。

CentOS編譯安裝MongoDB

CentOS 編譯安裝 MongoDB與mongoDB的php擴充

CentOS 6 使用 yum 安裝MongoDB及伺服器端配置

Ubuntu 13.04下安裝MongoDB2.4.3

MongoDB入門必讀(概念與實戰並重)

《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

1 相對於傳統主從模式的優勢

傳統的主從模式,需要手工指定叢集中的Master。

如果Master發生故障,一般都是人工介入,指定新的Master。

這個過程對於應用一般不是透明的,往往伴隨著應用重新修改設定檔,重啟應用伺服器等。

而MongoDB複本集,叢集中的任何節點都可能成為Master節點。

一旦Master節點故障,則會在其餘節點中選舉出一個新的Master節點。

並引導剩餘節點串連到新的Master節點。這個過程對於應用是透明的。

2 Bully選舉演算法

Bully演算法是一種協調者(主節點)競選演算法,主要思想是叢集的每個成員都可以聲明它是主節點並通知其他節點。

別的節點可以選擇接受這個聲稱或是拒絕並進入主節點競爭。被其他所有節點接受的節點才能成為主節點。

節點按照一些屬性來判斷誰應該勝出。這個屬性可以是一個靜態ID,也可以是更新的度量像最近一次事務ID(最新的節點會勝出)

他的選舉過程大致如下:

? 得到每個伺服器節點的最後操作時間戳記。每個mongodb都有oplog機制會記錄原生操作,方便和主伺服器進行對比資料是否同步還可以用於錯誤恢複。

? 如果叢集中大部分伺服器down機了,保留活著的節點都為 secondary狀態並停止,不選舉了。

? 如果叢集中選舉出來的主節點或者所有從節點最後一次同步時間看起來很舊了,停止選舉等待人來操作。

? 如果上面都沒有問題就選擇最後操作時間戳記最新(保證資料是最新的)的伺服器節點作為主節點。

選舉的觸發條件

初始化一個複本集時。

複本集和主節點中斷連線,可能是網路問題。

主節點掛掉。

人為介入,比如修改節點優先順序等

選舉還有個前提條件,參與選舉的節點數量必須大於複本集總節點數量的一半,如果已經小於一半了所有節點保持唯讀狀態。

3 搭建複本集叢集

每個虛擬機器都使用如下的設定檔啟動執行個體:

dbpath =/home/lihuilin/mongodata

smallfiles =true

replSet =mvbox

然後在任意一台虛擬機器登陸mongo,輸入如下設定

config = { _id:"mvbox", members:[

{_id:0,host:"192.168.1.1:27017"},

{_id:1,host:"192.168.1.2:27017"},

{_id:2,host:"192.168.1.3:27017"}]

}

rs.initiate(config);

可以看到複本集已經生效

可以使用rs.status()查看叢集狀態,或者rs.isMaster()

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

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.