25柔性事務解決方案:TCC(兩階段型、補償型)

實現

  • 一個完整額業務活動由一個主業務服務於若干從業務服務組成
  • 主業務服務負責發起並完成整個業務活動
  • 從業務服務提供TCC型業務操做
  • 業務活動管理器控制業務活動的一致性,它登記業務活動中的操做,並在業務活動提交時確認全部TCC型操做的confirm操做,在業務活動取消時調試用全部TCC操做的cancel操做

成本

  • 實現TCC操做的成本
  • 業務活動結束時confirm或取消操做的執行成本
  • 業務活動日誌成本

適用範圍

  • 強隔離性、嚴格一致性要求的業務活動
  • 適用於執行時間較短的業務(好比處理帳戶、收費等業務)

用到的服務模式

  • TCC操做、冪等操做、可補償操做、可查詢操做

方案特色

  • 不與具體的服務框架耦合(在RPC機構中通用)
  • 位於業務服務層,而非資源層
  • 能夠靈活選擇業務資源的鎖定粒度
  • TCC裏對每一個服務資源操做的是本地事務,數據被lock的時間短,可擴展性好(能夠說是爲獨立部署的SOA服務而設計的)

行業應用案例

  • 支付寶XTS(螞蟻金融雲的分佈式事務服務DTS)

TCC操做

Try:嘗試執行業務

  • 完成多有業務檢查(一致性)
  • 預留必須業務資源(隔離性)

Confirm:確認執行業務

  • 真正執行業務
  • 不作任何業務檢查
  • 只使用Try階段預留的業務資源
  • Confirm操做要知足冪等性

Cancel:取消執行業務

  • 釋放Try階段預留的業務資源
  • Cancel操做要知足冪等性

與2PC協議比較

  • 位於業務服務層而非資源層
  • 沒有單獨的準備(Prepare)階段,Try操做兼備資源操做與準備能力
  • Try操做能夠靈活選擇業務資源的鎖定粒度(以業務定粒度)
  • 較高開發成本
相關文章
相關標籤/搜索