摘要:也就是說在分布式系統下對多個數據庫進行事務的統一管控,保證數據的一致性。真實系統應當是與的混合體總結分布式系統中,最重要的是滿足業務需求,而不是追求抽象絕對的系統特性
分布式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于不同的分布式系統的不同節點之上。——百度百科如是說。也就是說在分布式系統下對多個數據庫進行事務的統一管控,保證數據的一致性。
當數據庫單表數據超過1000W行時,就需要考慮分庫分表了。這個時候單個數據庫的ACID已經不能適應這種情況了,就涉及到分布式事務了。
另外目前微服務甚是火熱,微服務架構本質就是分布式服務化;那么服務之間互相訪問時,也就存在了跨事務域操作;此時為了保證數據一致性,同樣涉及到分布式服務了。
尤其是在訂單、資金業務等核心業務流程中,就必須要有一個可靠的分布式事務解決方案來保證數據的準確性和可靠性。
常用分布式事務解決方案:
剛性事務全局事務(標準的分布式事務)-XA
JavaEE平臺中的分布式事務實現:
1、JTA(Java Transaction API):面向應用、應用服務器與資源管理器的高層事務接口。
2、JTS(Java Transaction Service):JTA事務管理器的實現標準,向上支持JTA,向下通過CORBA OTS實現跨事務域的互相操作性
3、EJB:基于組件的應用編程模型,通過聲明式事務管理進一步簡化事務應用的編程。
優點:
簡單一致的編程模型
跨事務域分布處理的ACID保證
缺點:
DTP(Distributed Transaction Processing Reference Model)模型的局限性
可靠消息最終一致性
業務場景:如對接某城市訂票業務
涉及平臺:
業務平臺(A):APP開發商業務開發平臺
支付平臺(B):三方支付平臺,四方支付平臺等
三方業務平臺(C):如某城市已有的在線售票系統等
消息處理平臺(D):消息確認、恢復等
任務調度平臺(E):確保各數據狀態一致,如有異常則繼續發送消息
系統設計:訂單記錄、交易記錄、支付記錄、消息記錄、消息隊列
注:消息的重復發送會導致業務處理接口出現重復調用的問題,所以接口的業務邏輯要實現冪等性設計,在實際的業務應用場景中,業務接口的冪等性設計,常結合可查詢操作一起使用。
TCC(兩階段型、補償型)
最大努力通知型
BASE理論:BA:Basic Availability基本業務可用性(支持分區失敗)
S:Soft state柔性狀態(狀態允許有短時間不同步,可異步)
E:Eventual consistency最終一致性(數據最終一致,可不是實時一致)
其中ACID,原子性與持久性必須根本保障;為了可用性、性能與降級服務的需要,只有降低一致性與隔離性的要求。
酸堿平衡(ACID-BASE Balance)
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分區容錯性)
對于共享數據系統,最多只能同時擁有CAP其中的兩個,無法兼得。
真實系統應當是ACID與BASE的混合體
總結:分布式系統中,最重要的是滿足業務需求,而不是追求抽象、絕對的系統特性
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68598.html
摘要:分布式事務技術理論定理。接下來我們看看分布式事務有哪幾種實現方案。基于協調者與參與者的思想設定,分別提出了與實現分布式事務。 這次使用分布式事務框架過程中了學習了一些分布式事務知識,所以本文我們就來聊聊分布式事務那些事。首先我們先回顧下什么是事務。 事務 什么是事務?這個作為后端開發,日常開發中只要與數據庫有交互,肯定就會使用過事務。現在摘抄一段wiki的解釋,解釋下什么是事務。 是數...
摘要:如上圖所示,的實際上是已中間件的形式放在應用層,不用依賴數據庫對協議的支持,完全剝離了分布式事務方案對數據庫在協議支持上的要求。 微信公眾號「后端進階」,專注后端技術分享:Java、Golang、WEB框架、分布式中間件、服務治理等等。 在微服務架構體系下,我們可以按照業務模塊分層設計,單獨部署,減輕了服務部署壓力,也解耦了業務的耦合,避免了應用逐漸變成一個龐然怪物,從而可以輕松擴展,...
摘要:對于設計分布式系統來說不僅僅是分布式事務的架構師來說,就是你的入門理論。分布式事務解決方案有了上面的理論基礎后,這里介紹開始介紹幾種常見的分布式事務的解決方案。是否真的要分布式事務在說方案之前,首先你一 事務的具體定義:事務提供一種機制將一個活動涉及的所有操作納入到一個不可分割的執行單元,組成事務的所有操作只有在所有操作均能正常執行的情況下方能提交,只要其中任一操作執行失敗,都將導致整...
閱讀 3254·2021-11-24 09:39
閱讀 2938·2021-09-09 11:34
閱讀 3204·2021-09-07 09:58
閱讀 2309·2019-08-30 13:07
閱讀 2874·2019-08-29 15:09
閱讀 1571·2019-08-29 13:01
閱讀 2315·2019-08-26 12:18
閱讀 1941·2019-08-26 10:28