分布式事務實現思路

2022-05-24 04:48:10 字數 568 閱讀 7253

大體思路是對事務進行**,手動控制事務的開啟提交。datasource->connect->transaction @transtaction註解也是aop 自己編寫事務註解zdytranstaction實現transtration裡面的幾個方法,connect也是,對datasource、connect、transaction編寫切面。事務a中有start標誌建立事務組,返回事務id。http/rcp呼叫其他服務把事務id傳過去。每個服務(都有自定義註解)執行業務後(單獨開個執行緒等待事務組通知提交事務),執行成功就新增commit事務,失敗就新增rollback事務。等到d服務有end標誌時事務結束。如果事務全都是commit。則會傳送乙個通知提交給各個事務(netty/tomcat等都可以)。然後執行緒被喚醒提交事務。反之,如果存在rollback則傳送rollback的通知喚醒執行緒回滾。(2pc兩階段提交)

2、利用mq做,訊息可以使用確認機制。對於失敗的訊息發往死信佇列,手動處理

3、tcc三階段提交 結合三方框架如hmily使用

分布式事務 分布式事務的實現

如果在多個服務中需要對不同的資料庫進行操作。因為不同服務操作的資料庫都不同,所以保證在同乙個事務中完成操作顯然是不科學的。那實現分布式事務的思想 1 方法入口,建立一條日誌記錄,狀態定義為初始狀態,即儲存本條日誌記錄 可以儲存在資料庫中,也可以寫出到本地磁碟檔案 2 可以在非同步執行緒或在定時任務中...

分布式事務之事務實現模式與技術(四)

在分布式系統中實現的事務就是分布式事務,分布式系統的cap原則是 是分布式事務主要是保證資料的一致性,主要有三種不同的原則 共同點 orderservice監聽新訂單佇列中的訊息,獲取之後新增訂單,成功則往新訂單繳費佇列中寫訊息,中間新增訂單的過程使用jta事務管理,當新增失敗則事務回滾,不會往新訂...

阿里分布式事務設計思路

資料庫不在乙個例項上面,比如支付寶賬戶表和餘額寶賬戶表顯然不會在同乙個資料庫例項上,他們往往分布在不同的物理節點上,這個時候一定要避免使用本地事務。在跨庫操作中,如果使用本地事務,往往會使本地事務失效,或者造成龐大的伺服器開銷,引發伺服器死掉的極端影響。本地事務 一般情況下,乙個龐大的資料庫表 需要...