分佈式事務簡單處理

解決分佈式事務最簡單的方案就是向前或向後,即補充或回滾。

業務邏輯有如下三步:

  1. 調用A服務凍結金額

  2. 調用B服務增加額度

  3. 記錄數據庫

進行到第2步失敗 -> 寫task,回滾第1步(通知A服務方去回滾)

進行到第3步失敗 -> 寫task,從A/B服務處同步數據至數據庫

還有一種方案就是寫task,轉化爲本地事務,由task去執行上述三步,失敗則重試task,當然,A/B服務都有冪等性處理。這種方案的缺點之一,是假定了參數合理的情況下,服務最終一定會執行成功,缺點之二是看起來不自然。

複雜的方案就是TCC方案,參見螞蟻金服的DTS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章