您好,登錄后才能下訂單哦!
雖然MGR會使用Slave的通道,但只是使用這個通道的執(zhí)行線程(Applier Thread)來執(zhí)行Binlog Event,并沒有使用這個通道來傳輸Binlog Event。MGR沒有使用異步復制的Binlog Event傳輸機制,也不使用MySQL的服務端口來進行通信。MGR創(chuàng)建了一個獨立的TCP端口來進行通信,各個MySQL服務器上的Group Replication插件通過這個端口連接在一起,兩兩之間可以直接通信。
Binlog Event的傳輸并不像異步復制那樣是簡單的點到點之間的傳輸。MGR在傳輸數據時,使用了Paxos協議。Paxos協議保證了數據傳輸的一致性和原子性。MGR基于Paxos協議構建了一個分布式的狀態(tài)機復制機制,這是實現多主復制的核心技術。這個技術為MGR帶來了3個主要優(yōu)點,分別如下。
1.MGR中不會出現腦裂的現象(但要注意可能出現網絡分區(qū)的情況,MGR根據參數group_replication_unreachable_majority_timeout=0/N設置的不同,行為稍有不同)。
2.MGR的冗余能力很好,能夠保證Binlog Event至少被復制到超過一半的成員上,只要同時宕機的成員不超過半數便不會導致數據丟失。
3.MGR還保證只要Binlog Event沒有被傳輸到半數以上的成員,本地成員不會將事務的Binlog Event寫入Binlog文件和提交事務,從而保證宕機的服務器上不會有組內在線成員上不存在的數據。因此,宕機的服務器重啟后,不再需要特殊的處理就可以加入組。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。