之前某段時間在研究分布式事務過程中,對實現原理比較好奇,於是去gitee上找了幾個人氣比較高的框架進行學習,其中印象深刻的有litx,因為litx原始碼不多,且都是基於spring和dubbo底層實現,所以理解起來比較容易,索性對這個框架分析過長進行總結如下
litx(是乙個基於補償的輕量級分布式事務框架。(目前只支援dubbo,未來計畫支援http等其他rpc呼叫的補償)
首先看原始碼得先把專案拉到本地,通過跑demo或者測試用例方式先讓專案正常執行,然後結合文件+觀察輸出日誌+debug方式找到其入口,然後深入對每個方法進行深挖
如下是專案結構圖,從上到下分別是 litx-core(存放核心模組)、litx-dubbo(實現dubbo分布式事務)、litx-test(測試用例)
該框架其主要核心思路是基於spring->beanpostprocessor + 自定義分布式事務標識註解 + dubbo filter + 重寫datasourcetransactionmanager實現分布式事務,由於篇幅有限,下面只對核心的**進行分析
以上篇幅就是litx分布式事務原始碼的核心
分布式事務 TCC補償機制
tcc事務是try commit cancel三種指令的縮寫,其邏輯模式類似於xa兩階段提交,但是實現方式是在 層面來人為實現。tcc開源框架bytetcc,tcc transaction,himly 1 先來try一下,不要把業務邏輯完成,先試試看,看各個服務能不能基本正常運轉,能不能先凍結我需要...
事務 分布式事務
事務 邏輯上的一組操作,要麼都成功要麼都失敗 事務的四個特性 acid 原子性,一致性,隔離性,永續性 事務的隔離級別 讀未提交 產生髒讀 讀已提交 不可重複讀 可重複讀 幻讀 mysql預設 序列化讀 效能最低 傳播行為 7個 七種傳播行為 required 支援當前事務,如果不存在,就新建乙個 ...
分布式事務框架seata
seata at模式 at模式和xa模式一樣,都是乙個兩階段提交的事務模型,不過和xa相比,做了一些優化,這個官網著重講解了一下at的原理,之後開一節著重看下一at模式的實現原理。saga模式 另外saga還提供了一下兩種補償恢復方式 saga的優勢 saga的實現方式 在以上支付下單的流程上乙個典...