微服務架構分佈式事務方案

第一節:瞭解常用的分佈式解決方案

一、分佈式事務方案:最終一致性、事務補償、TCC、兩階段提交、最大能力通知等。具體結合業務場景。很多大型企業自主研發了自己的分佈式事務解決方案,如:支付寶 XTS,去哪兒 QMQ。

1.基於可靠消息的最終一致性解決方案(異步確保型)(適用場景比較廣)

2.TCC事務補償性方案(try-confirm-cancel)(也屬於兩階段型的,但區別於2PC協議的兩階段提交)

3.最大努力通知型方案(一般跨平臺通知比較常用)

第二節:解決方案效果展示(結合支付系統真實應用場景)

一.場景(如上圖)

1、基於可靠消息最終一致性方案

場景:對應支付系統會計異步記賬業務;銀行通知結果信息存儲與驅動訂單處理。

2、TCC方案

場景:對應支付系統的訂單賬戶操作:訂單處理、資金賬戶處理、積分賬戶處理。

3、最大努力通知型方案

場景:對應支付系統的商戶通知業務場景

二、用到的技術:

dubbo、spring、springMVC、mybatis、druid

jdk7(或jdk8)、mysql5.6、tomcat、兼容JMS標準的MQ(activeMQ)

第三節:常用分佈式事務方案介紹

一、事務介紹

1.由一組操作構成的可靠、獨立的工作單元。

2.ACID: atomicity(原子性) 、consistency(一致性)、isolation(隔離性)、durability(持久性)

3.難點:高度併發、資源分佈、大時間跨度

二、本地事務

1.事務由資源管理器本地管理(如:spring 註解)

2.優點:支持嚴格的ACID屬性、可靠、高效、狀態可以只在資源管理器中維護、應用編程模型簡單(在框架或平臺的支持)

3.侷限:不支持分佈式事務處理能力、隔離的最小單位由資源管理器決定(如:數據庫中的一條記錄)

三、全局事務(DTP模型)--標準分佈式事務

四、javaEE平臺中的分佈式事務實現

五、柔性事務

1.柔性事務中的服務模式:可查詢模式、冪等操作、TCC操作、可補償操作。

2.柔性事務解決方案:可靠消息最終一致

3.TCC

4.最大努力通知型

六、總結

常用的分佈式事務解決方案:

*剛性事務:全局事務(標準的分佈式事務)

*柔性事務:

可靠消息最終一致(異步確認型)

TCC(兩階段型、補償型)

最大努力通知型(非可靠消息、定期校對)

本文就分享到這裏了,最後送福利了,現在加羣即可獲取 羣號:923116658 裏面有Java工程化 、高性能及分佈式、高性能、高架構、性能調優、Spring、MyBatis、 Netty源碼分析等多個知識點高級進階乾貨的相關視頻資料,還有spring和 虛擬機等書籍掃描版,還有更多面試題等你來拿。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章