Mycat分散式事務兩階段提交過程概述

chenfeng發表於2017-04-17

兩階段提交過程可以用以下圖來說明:


解釋如下:
第一階段:
預備階段需要寫事務日誌,以備第二階段commit時候機器失敗導致無法恢復事務。
MySQL 直到5.7的某個版本,才修復了一直以來的XA缺陷,即binlog不寫prepare日誌,導致主從資料可能不一致。

第二階段:
將提交分成兩階段進行的目的很明確,就是儘可能晚地提交事務,讓事務在提交前儘可能地完成所有能完成的工作,這樣,最後的提交階段將是一個耗時極短的微小操作,這種操作在一個分散式系統中失敗的機率是非常小的,也就是所謂的“網路通訊危險期”非常的短暫,這是兩階段提交確保分散式事務原子性的關鍵所在。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2137419/,如需轉載,請註明出處,否則將追究法律責任。

相關文章