微服务架构分布式事务解决方案设计思路-(概念篇)
2019獨角獸企業重金招聘Python工程師標準>>>
學習以電商購物支付流程中支付系統的支付結果處理為例(學習龍果支付)
第一節:了解常用的分布式解決方案
一、分布式事務方案:最終一致性、事務補償、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(兩階段型、補償型)
? ? 最大努力通知型(非可靠消息、定期校對)
轉載于:https://my.oschina.net/sundasheng44/blog/833486
總結
以上是生活随笔為你收集整理的微服务架构分布式事务解决方案设计思路-(概念篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CNN Mnist
- 下一篇: 解释一下为什么我很少jQuery