1、分佈式事務方案:最終一致性、事務補償、TCC、兩階段提交、最大能力通知等。具體結合業務場景。不少大型企業自主研發了本身的分佈式事務解決方案,如:支付寶 XTS,去哪兒 QMQ。java
1.基於可靠消息的最終一致性解決方案(異步確保型)(適用場景比較廣)mysql
2.TCC事務補償性方案(try-confirm-cancel)(也屬於兩階段型的,但區別於2PC協議的兩階段提交)面試
3.最大努力通知型方案(通常跨平臺通知比較經常使用)spring
一、基於可靠消息最終一致性方案sql
場景:對應支付系統會計異步記帳業務;銀行通知結果信息存儲與驅動訂單處理。數據庫
二、TCC方案編程
場景:對應支付系統的訂單帳戶操做:訂單處理、資金帳戶處理、積分帳戶處理。tomcat
三、最大努力通知型方案性能優化
場景:對應支付系統的商戶通知業務場景mybatis
dubbo、spring、springMVC、mybatis、druid
jdk7(或jdk8)、mysql5.六、tomcat、兼容JMS標準的MQ(activeMQ)
第三節:經常使用分佈式事務方案介紹
1.由一組操做構成的可靠、獨立的工做單元。
2.ACID: atomicity(原子性) 、consistency(一致性)、isolation(隔離性)、durability(持久性)
3.難點:高度併發、資源分佈、大時間跨度
1.事務由資源管理器本地管理(如:spring 註解)
2.優勢:支持嚴格的ACID屬性、可靠、高效、狀態能夠只在資源管理器中維護、應用編程模型簡單(在框架或平臺的支持)
3.侷限:不支持分佈式事務處理能力、隔離的最小單位由資源管理器決定(如:數據庫中的一條記錄)
1.柔性事務中的服務模式:可查詢模式、冪等操做、TCC操做、可補償操做。
2.柔性事務解決方案:可靠消息最終一致
在此我向你們推薦一個架構學習交流圈。交流學習企鵝羣號:948368769(裏面有大量的面試題及答案)裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化、分佈式架構等這些成爲架構師必備的知識體系。還能領取免費的學習資源,目前受益良多
3.TCC
4.最大努力通知型
經常使用的分佈式事務解決方案:
*剛性事務:全局事務(標準的分佈式事務)
*柔性事務:
可靠消息最終一致(異步確認型)
TCC(兩階段型、補償型)
最大努力通知型(非可靠消息、按期校對)