1.a和b微服務,如果a成功,b失敗,此時a回滾為之前的狀態,即a和b都失敗,此時滿足強一致性.
lcn框架來解決強一致性.
本地事務執行前會先建立txmanage事務組物件.裡面存放事務組資訊,當b事務執行失敗時,本地事務會根據這個事務組資訊來判定成功還是失敗,失敗的話會回滾.
2.a和b微服務,如果a成功,b失敗,此時通過rocketmq重試,xxl-job等方式進行讓b最終也成功,此時滿足事務的最終一致性.
rocketmq的半訊息,訊息回查,重試機制,以及xxl-job撈失敗的核心引數走相應邏輯,最終人工兜底來保證最終一致性.
總結:選擇哪種思想根據具體的專案性質和業務場景來定.
分布式事務最終一致性的簡單案例
最近專案中遇到乙個場景。為了減少單庫的資料量,系統採用了分庫的方式,分為1個主庫和n個分庫。現在,在分庫中的a表,需要收斂成乙個彙總的資料,並寫入主庫中的b表。需要保證分庫更改a表的處理狀態和插入主庫b表兩個動作具有原子性,那麼,這就涉及到了跨庫的分布式事務的一致性問題。經過一番學習了解,由於該場景...
分布式事務最終一致性的簡單案例
最近專案中遇到乙個場景。為了減少單庫的資料量,系統採用了分庫的方式,分為1個主庫和n個分庫。現在,在分庫中的a表,需要收斂成乙個彙總的資料,並寫入主庫中的b表。需要保證分庫更改a表的處理狀態和插入主庫b表兩個動作具有原子性,那麼,這就涉及到了跨庫的分布式事務的一致性問題。經過一番學習了解,由於該場景...
TCC 分布式事物最終一致性
tcc是由支付寶架構師提供的一種柔性解決分布式事務解決方案,主要包括三個步驟 tcc的關鍵流程如下圖 以下單和扣減庫存為例子 q 預生成訂單失敗了,為什麼要通過tcc執行預處理資料回滾?a 可能預生成訂單成功,但是介面返回失敗 超時失敗 所以預處理在某些情況下是有預處理資料,需要清理 在整個流程,我...