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

第一節(jié):了解常用的分布式解決方案

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

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

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

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

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

一.場景(如上圖)

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

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

2、TCC方案

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

3、最大努力通知型方案

場景:對應支付系統(tǒng)的商戶通知業(yè)務場景

二、用到的技術:

dubbo、spring、springMVC、mybatis、druid

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

第三節(jié):常用分布式事務方案介紹

一、事務介紹

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

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

3.難點:高度并發(fā)、資源分布、大時間跨度

二、本地事務

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

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

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

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

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

五、柔性事務

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

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

3.TCC

4.最大努力通知型

六、總結

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

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

*柔性事務:

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

TCC(兩階段型、補償型)

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

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

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容