傳統分佈式事物解決方案

     上一章咱們通過本地事物的介紹,發現了本地事物的侷限性,最後咱們引起對分佈式事物的思考,咱們給出一個「事物管理器」的概念來管理事物,進而實現分佈式事物的問題。那麼這個想發到底能不能行呢?答案是確定的,傳統的分佈式事物方案就是依賴於「事物管理器」。只是有必定的侷限性而已,基本的需求方案是能夠實現的。架構

    全局事物(DTP模型)介紹,如圖:分佈式

    

上圖可知,事物管理器來管理事物,賦予事物跨服務跨資源的功能,從而解決分佈式事物的問題。微服務

那麼既然有一套傳統的方案能解決分佈式事物的問題,爲何咱們還要去深刻研究呢?spa

由於這套方案也有很大的侷限性的.net

 

全局事物的優勢:blog

     1:嚴格的ACID原則接口

     2:基於本地事物思想,代碼實現簡單。資源

全局事物的缺點:效率

    1:效率很是低,不適用微服務架構。全局事物方式下,全局事物管理器(TM)經過XA接口使用二階段提交協議(2PC)與資源層進行交互.使用全局事物,數據被lock的時間跨度整個事物,直到全局事物結束程序

     2:2PC是反可伸縮模式,在事物處理過程當中,參與者須要一直持有資源直到結束,當業務規模變大,2PC的侷限性會愈來愈明顯,系統可伸縮性會變的不好

     3:與本地事物相比,XA協議的系統開銷至關大。

因此,他的缺點遠大於優勢,這套傳統的分佈式事物解決方案,對於個人支付系統,確定是知足不了需求的。下面會帶你們一塊兒探討三種柔性分佈式事物的解決方案

    最大努力通知型

    最終消息一致性型

    TCC型

 

/** *   ————————若是以爲本博文還行,別忘了推薦一下哦,謝謝! *   做者:寫程序的奧特曼 *   歡迎轉載,請保留此段聲明。 *   出處:https://my.oschina.net/u/2286631/blog/1504666 */

相關文章
相關標籤/搜索