亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MongoDB Replica Set使用經驗分享理論篇

發布時間:2020-07-15 06:10:07 來源:網絡 閱讀:1031 作者:自由linux 欄目:MongoDB數據庫

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

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


一  MongoDB Replica Set的原理

復制主要用于備份、災難恢復和讀寫分離。一個Replica Set就是一組mongod實例。Replica Set中的Primary接收所有的寫操作,Secondaries從Primary復制操作然后應用到自己的data set。


MongoDB Replica Set使用經驗分享理論篇


MongoDB Replica Set使用經驗分享理論篇


MongoDB Replica Set使用經驗分享理論篇


MongoDB Replica Set使用經驗分享理論篇




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


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


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




Arbiter    Arbiter不需要維護自己的data sets,只是當Primary掛掉之后參與投票選擇哪個Secondary可以升級為Primary。當Replica Set中的成員個數為偶數個時,就需要添加一個Arbiter用于投票選舉哪個可以升級為Primary。Arbiter對硬件的要求很低。不能在Primary或者Secondary主機上運行Arbiter。


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

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



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

A.在選舉中阻止其成為Primary,只用作備份數據。通過設置優先級priority為0來實現。

  MongoDB Replica Set使用經驗分享理論篇

B.阻止應用程序從它讀,通過設置優先級priority為0和設置hidden為true來實現。


              MongoDB Replica Set使用經驗分享理論篇

   一個隱藏的成員同樣復制Primary的數據,但是對于客戶端應用程序來講,它不可見。


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

  MongoDB Replica Set使用經驗分享理論篇

   Delayed members即延時成員會延時從Primary復制oplog



二 MongoDB Replica Set部署架構


Replica Set Elections 復制集選舉

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


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

Heartbeats    心跳檢測

Replica Set中成員每2秒向其他成員發送心跳,如果在10秒內無回應,這個成員就被其他成員標記為不可用。


Priortiy Comparisons  對比優先級

設定成員的優先級priority會影響投票選舉,優先級越高,越容易被選舉成為Primary。如果優先級設置為0,那么這個成員不會永遠不會被選舉成為Primary,它也不需要其他成員為它投票。


Optime  

Optime是Replica Set的成員上一次從oplog中將操作應用到data sets的時間戳。一個成員不會成為Primary,除非它比其他可見的成員擁有最新的時間戳。


Connections

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


Network Partitions

為了避免當Primary宕掉后,整個Replica Set無法選舉出新的Primary,Replica Set變成只讀,需要在一個數據中心放置大部分Replica Set中的成員實例。








參考文檔

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柘城县| 蒲江县| 临泽县| 东乡县| 乃东县| 万宁市| 崇明县| 西宁市| 临湘市| 门源| 罗定市| 元氏县| 安顺市| 屏东县| 尤溪县| 渭源县| 灌云县| 应城市| 北流市| 永善县| 马尔康县| 斗六市| 连山| 丹凤县| 马龙县| 陆良县| 北碚区| 无棣县| 闵行区| 堆龙德庆县| 乐平市| 浙江省| 乌兰县| 东平县| 崇信县| 商河县| 军事| 临清市| 德阳市| 普兰店市| 福贡县|