您好,登錄后才能下訂單哦!
1、異步復制:
2、半同步復制:同步出現超時后會自動變回異步復制;
MongoDB的副本集是一組mongod進程的集合,提供冗余和高可用性。最小的的副本集包含(1個primary、1個secondary和1個arbiter),大多數的部署包含3個節點(1個primary、2個secondary)。副本集最多可以支持12個節點,超過則需要使用主從架構。
primary:接收所有客戶端的寫操作。每個副本集只能存在一個primary,為了支持數據復制,primary的所有改變數據的操作都會記錄在oplog中。
secondary:通過復制primary的oplog并且重放oplog保持和primary的數據一致性(異步的有延時)。當主不可用的時候,副本集會從secondary中選出一個作為primary。默認所有的read操作也會指向primary,但是可以通過配置將read操作指向secondary(因為復制數據有延遲所以無法保證保證數據strict consistency)。可以通過配置priority來空值變成primary的優先級,priority=0表示不能成為primary,另外還可以配置隱藏的副本成員。
arbiter:arbiter不存儲數據,僅僅用來來選舉primary。當集群節點偶數的時候,通過添加一個artiber來獲取一個投票最多的secondary作為primary。arbiter不需要特殊的硬件。
Replica Set Elcetions:選舉的過程中,副本集因為沒有primary所以不接手寫操作,并且所有成員都是只讀的。如果副本集的大多數成員不可用,副本集將選不出primary。
Heartbeats:副本集成員每2秒鐘給其他的成員發一個heartbeats(pings),如果一個心跳10秒鐘沒有收到響應,心跳的發送方將會把心跳的接收方標為不可到達的。
副本集特性:異步、自動故障切換;
可以設置一種類似于MySQL半同步的功能,可以指定多少臺臺節點完成寫操作同步后才返回,有超時時間。
一個典型的副本集結構
MySQL和MongoDB對比
MySQL存在半同步復制,MongoDB也存在半同步復制。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。