最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 14:26:53
文檔

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

MongoDBReplicaSet使用經(jīng)驗(yàn)分享理論篇:MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Replicat Set具有自動(dòng) MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Re
推薦度:
導(dǎo)讀MongoDBReplicaSet使用經(jīng)驗(yàn)分享理論篇:MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Replicat Set具有自動(dòng) MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Re

MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Replicat Set具有自動(dòng)

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

目前很多游戲公司都開始使用MongoDB作為數(shù)據(jù)庫(kù),我們公司線上使用的版本是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 接收來(lái)自客戶端的所有的寫操作,一個(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不可讀不可寫,但是可以通過(guò)設(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ù)量超過(guò)12,就需要使用Master-Slave主從復(fù)制方式。

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

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

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

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

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

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

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

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

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

Heartbeats 心跳檢測(cè)

Replica Set中成員每2秒向其他成員發(fā)送心跳,如果在10秒內(nèi)無(wú)回應(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無(wú)法選舉出新的Primary,Replica Set變成只讀,需要在一個(gè)數(shù)據(jù)中心放置大部分Replica Set中的成員實(shí)例。

參考文檔

CentOS 編譯安裝 MongoDB與mongoDB的php擴(kuò)展

CentOS 6 使用 yum 安裝MongoDB及服務(wù)器端配置

Ubuntu 13.04下安裝MongoDB2.4.3

MongoDB入門必讀(概念與實(shí)戰(zhàn)并重)

Ubunu 14.04下MongoDB的安裝指南

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

Nagios監(jiān)控MongoDB分片集群服務(wù)實(shí)戰(zhàn)

基于CentOS 6.5操作系統(tǒng)搭建MongoDB服務(wù)

MongoDB 的詳細(xì)介紹:請(qǐng)點(diǎn)這里
MongoDB 的下載地址:請(qǐng)點(diǎn)這里

本文永久更新鏈接地址:

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

MongoDBReplicaSet使用經(jīng)驗(yàn)分享理論篇:MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Replicat Set具有自動(dòng) MongoDB Replica Set是MongoDB官方推薦的主從復(fù)制和高可用方案,用于替代原有的Master-Slave主從復(fù)制方案。Re
推薦度:
標(biāo)簽: 使用 理論 mongodb
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top