MongoDBReplicaSet使用經(jīng)驗(yàn)分享理論篇-創(chuàng)新互聯(lián)

MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Replicat Set具有自動(dòng)切換功能,當(dāng)Primary掛掉之后,可以自動(dòng)由Replica Set中的某一個(gè)Secondary來切換到Primary,以實(shí)現(xiàn)高可用的目的,不像MySQL那樣需要使用第三方軟件。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的懷遠(yuǎn)網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

目前很多游戲公司都開始使用MongoDB作為數(shù)據(jù)庫,我們公司線上使用的版本是2.4.6.

一  MongoDB Replica Set的原理

復(fù)制主要用于備份、災(zāi)難恢復(fù)和讀寫分離。一個(gè)Replica Set就是一組mongod實(shí)例。Replica Set中的Primary接收所有的寫操作,Secondaries從Primary復(fù)制操作然后應(yīng)用到自己的data set。

MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

一個(gè)Replica Set中的成員角色有三種:Primary,Secondary和Arbiter。

Primary   接收來自客戶端的所有的寫操作,一個(gè)Replica Set中有且只有一個(gè)Primary。Primary如果宕掉,Replica Set會(huì)自動(dòng)選舉一個(gè)Secondary成為Primary。Primary將它data sets的所有操作都記錄到oplog中。

Secondary  Secondary從Primary復(fù)制oplog,然后將oplog中的操作應(yīng)用到自己的data sets。Secondary和Primary之間是異步復(fù)制,也就是Secondary中的數(shù)據(jù)可能不是最新的。默認(rèn)情況下,Secondary不可讀不可寫,但是可以通過設(shè)置運(yùn)行客戶端從Secondary讀。

Arbiter   Arbiter不需要維護(hù)自己的data sets,只是當(dāng)Primary掛掉之后參與投票選擇哪個(gè)Secondary可以升級(jí)為Primary。當(dāng)Replica Set中的成員個(gè)數(shù)為偶數(shù)個(gè)時(shí),就需要添加一個(gè)Arbiter用于投票選舉哪個(gè)可以升級(jí)為Primary。Arbiter對(duì)硬件的要求很低。不能在Primary或者Secondary主機(jī)上運(yùn)行Arbiter。

一個(gè)Replica Set可以最多擁有12個(gè)成員,但是只有7個(gè)成員可以同時(shí)參與投票選舉成為Primary,如果成員數(shù)量超過12,就需要使用Master-Slave主從復(fù)制方式。

部署一個(gè)Replica Set至少需要三個(gè)成員,一個(gè)Arbiter,一個(gè)Secondary和一個(gè)Primary或者一個(gè)Primary,兩個(gè)Secondary。

可以將Secondary配置為以下幾種特殊用途:

A.在選舉中阻止其成為Primary,只用作備份數(shù)據(jù)。通過設(shè)置優(yōu)先級(jí)priority為0來實(shí)現(xiàn)。

  MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

B.阻止應(yīng)用程序從它讀,通過設(shè)置優(yōu)先級(jí)priority為0和設(shè)置hidden為true來實(shí)現(xiàn)。

        MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

  一個(gè)隱藏的成員同樣復(fù)制Primary的數(shù)據(jù),但是對(duì)于客戶端應(yīng)用程序來講,它不可見。

C.保留歷史鏡像數(shù)據(jù)用于數(shù)據(jù)回檔,比如如果誤刪除數(shù)據(jù),可以使用Delayed Replica Set成員中的數(shù)據(jù)恢復(fù)。

  MongoDB Replica Set使用經(jīng)驗(yàn)分享理論篇

  Delayed members即延時(shí)成員會(huì)延時(shí)從Primary復(fù)制oplog

二 MongoDB Replica Set部署架構(gòu)

Replica Set Elections 復(fù)制集選舉

Replica Set通過投票選舉的方式來決定哪個(gè)成員可以升級(jí)為Primary。初始化一個(gè)Replica Set后就會(huì)產(chǎn)生選舉出現(xiàn),或者任何時(shí)候當(dāng)Primary不可用時(shí)也會(huì)有選舉出現(xiàn)。需要注意的是,投票選舉Primary會(huì)花費(fèi)一定的時(shí)間來完成,在這段時(shí)間內(nèi),整個(gè)Replica Set無法進(jìn)行寫操作,所以盡量避免重新投票選舉的情況出現(xiàn)。

影響選舉的因素和條件有:

Heartbeats   心跳檢測

Replica Set中成員每2秒向其他成員發(fā)送心跳,如果在10秒內(nèi)無回應(yīng),這個(gè)成員就被其他成員標(biāo)記為不可用。

Priortiy Comparisons  對(duì)比優(yōu)先級(jí)

設(shè)定成員的優(yōu)先級(jí)priority會(huì)影響投票選舉,優(yōu)先級(jí)越高,越容易被選舉成為Primary。如果優(yōu)先級(jí)設(shè)置為0,那么這個(gè)成員不會(huì)永遠(yuǎn)不會(huì)被選舉成為Primary,它也不需要其他成員為它投票。

Optime

Optime是Replica Set的成員上一次從oplog中將操作應(yīng)用到data sets的時(shí)間戳。一個(gè)成員不會(huì)成為Primary,除非它比其他可見的成員擁有最新的時(shí)間戳。

Connections

一個(gè)Replica Set中的成員如果想要成為Primary,它必須能夠連接這個(gè)Replica Set中具有投票權(quán)利的大部分成員。

Network Partitions

為了避免當(dāng)Primary宕掉后,整個(gè)Replica Set無法選舉出新的Primary,Replica Set變成只讀,需要在一個(gè)數(shù)據(jù)中心放置大部分Replica Set中的成員實(shí)例。



參考文檔

http://docs.mongodb.org/v2.4/replication/

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文名稱:MongoDBReplicaSet使用經(jīng)驗(yàn)分享理論篇-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://muchs.cn/article14/ddpide.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化網(wǎng)站制作、建站公司、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)