第一節(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和 虛擬機等書籍掃描版,還有更多面試題等你來拿。