當前位置:編程學習大全網 - 網站源碼 - tcc模型的try階段

tcc模型的try階段

Try階段是做業務檢查(壹致性)及資源預留(隔離)。

Try商品庫存為100,用戶購買了1個商品,此時商品庫存應該檢查庫存、更新庫存數量,同時產生凍結1個商品的數量,此時創建訂單調用訂單服務,訂單狀態變為待確認狀態,鎖定預留資源。

Confirm當Try正常執行之後,會進入Confirm或者Cancel階段,當訂單狀態變成完成狀態之後,會執行Confirm裏面的邏輯,在Confirm邏輯中將凍結數量-1,釋放預留資源。

方法:

空回滾在未調用try方法或者try方法執行失敗的情況下,就執行了cancel方法進行回滾。比如本地事務try執行失敗,導致try本地事務進行了回滾,此時沒有必要再調用cancel方法進行回滾,CC模型上,try失敗之後壹定會進入cancel階段,導致了空回滾。

解決方法:在cancel階段邏輯執行之前判斷是否執行try操作即可。懸掛壹階段Try操作時,出現網絡問題導致超時,此時事務管理器會觸發二階段的回滾,調用TCC的cancel操作,此時cancel調用成功。

  • 上一篇:ios 8 隨手記賬本刪除賬本 就會同步以前的數據。
  • 下一篇:java 怎麽用UDP實時接收數據?
  • copyright 2024編程學習大全網