91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

mongodb副本集指的是什么意思

發布時間:2020-08-01 10:16:36 來源:億速云 閱讀:295 作者:清晨 欄目:編程語言

小編給大家分享一下mongodb副本集指的是什么意思,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

副本集簡介

Mongodb副本集由一組Mongod實例(進程)組成,包含一個Primary節點和多個Secondary節點,Mongodb Driver(客戶端)的所有數據都寫入Primary,Secondary從Primary同步寫入的數據,以保持復制集內所有成員存儲相同的數據集,提供數據的高可用。副本集帶來的架構優點主要有:

·集群高可用

·讀寫可分離

副本集節點類型

1.Primary: 副本集的主節點,可讀寫,唯一可以進行寫操作的節點,由集群自行選舉出來。

2.Secondary: 正常情況下,Seconary會參與Primary選舉(自身也可能會被選為Primary),并從Primary同步最新寫入的數據,以保證與Primary存儲相同的數據。Secondary可以提供讀服務,增加Secondary節點可以提供副本集的讀服務能力,提升副本集的可用性。

3.Arbiter: Arbiter節點只參與投票,不能被選為Primary,并且不從Primary同步數據。非常輕量級的服務,當復制集成員為偶數時,最好加入一個Arbiter節點,以提升復制集可用性。

4.Priority0: Priority0節點的選舉優先級為0,不會被選舉為Primary,且不能發起選舉。

5.Vote0: 副本集成員最多50個,參與Primary選舉投票的成員最多7個,其他成員(Vote0)的vote屬性必須設置為0,即不參與投票。

6.Hidden: Hidden節點不能被選為主(Priority為0),并且對Driver不可見。因Hidden節點不會接受Driver的請求,可使用Hidden節點做一些數據備份、離線計算的任務,不會影響復制集的服務。

7.Delayed: Delayed節點必須是Hidden節點,并且其數據落后與Primary一段時間(可配置,比如1個小時)。因Delayed節點的數據比Primary落后一段時間,當錯誤或者無效的數據寫入Primary時,可通過Delayed節點來做數據恢復。

Primary選舉

選舉過程需要消耗一些時間,在此期間,集群將不能接收write操作(即使舊的primary仍然存活,但因為“網絡分區”問題導致它不能與其他secondaries通訊),所有的members(包括舊的primary)都處于只讀狀態,選舉對業務影響很大,所以需要盡量避免選舉的發生。

需要進行Primary選舉的場景:

(1)副本集初始化時;

(2)副本集被reconfig;

(3)Secondary節點檢測到Primary宕機時;

(4)當有Primary節點主動stepDown(主動降級為Secondary)時;

Primary的選舉受節點間心跳、優先級、最新的oplog時間等多種因素影響。

1.心跳: 復制集中的所有members之間都互相建立心跳連接,且每隔兩秒發送一次心跳,如果未在10秒內收到回復,則此member將會被標記為“不可用”,Secondary(前提是可被選為Primary)會發起新的Primary選舉,而其他能正常收到心跳反饋的Secondary能否決新的Primary選舉。

2.優先級: 優先級即Priority值,每個member都有權重值,默認為都為1,members傾向于選舉權重最高者。上述提到,priority為0的member不能被選舉為primary且不能發起選舉;只要當前primary的權重最高或者持有最新oplog數據的secondaries沒有比它更高的權重時,集群不會觸發選舉。當Primary發現有優先級更高Secondary,并且該Secondary的數據落后在10s內,則Primary會主動降級,讓優先級更高的Secondary有成為Primary的機會。

3.Optime: 當前member已經從primary的oplog中應用的最后一個operation的時間戳(此時間戳由primary生成,在oplog中每個操作記錄都有);一個member能成為primary的首要條件就是在所有有效的members中它持有最新的optime。

4.多數派連接: 一個member要成為primary,它必須與“多數派”的其他members建立連接,如果未能與足夠多的member建立連接,事實上它本身也無法被選舉為primary;多數派參考的是“總票數”,而不是member的個數,因為我們可以給每個member設定不同的“票數”。假設復制集內投票成員數量為N,則大多數為 N/2 + 1。

綜上所述,在發起選舉以后,能成為Primary的節點需要的條件有:

·能夠與“多數派”建立連接

·在所有有效的members中它持有最新的optime

·前兩個條件相同的,Priority優先級高的成為Primary

·optime與Priority都相等時,誰發起選舉,誰當選Primary

3.0版本以后副本集成員最多50個,參與Primary選舉投票的成員最多7個,其他成員(Vote0)的vote屬性必須設置為0,即不參與投票。

副本集中各類角色的特點總結如下:

mongodb副本集指的是什么意思

備注:

·上述Secondary為默認Secondary,即Priority!=0、vote!=0等;

·Hidden為特殊的Secondary,Delayed為特殊的Hidden。

看完了這篇文章,相信你對mongodb副本集指的是什么意思有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

东莞市| 和田县| 兴业县| 柘城县| 宁津县| 西峡县| 英德市| 杭锦旗| 弥渡县| 临邑县| 拉孜县| 福州市| 扎囊县| 清徐县| 武宣县| 秦皇岛市| 翁源县| 永年县| 辉县市| 沐川县| 额济纳旗| 方城县| 南丰县| 古丈县| 石渠县| 观塘区| 景洪市| 柞水县| 弥渡县| 和平县| 赤壁市| 商都县| 紫阳县| 从化市| 寿阳县| 叶城县| 栾川县| 论坛| 泸水县| 土默特左旗| 吉木萨尔县|