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

實現
- 一個完整額業務活動由一個主業務服務於若干從業務服務組成
- 主業務服務負責發起並完成整個業務活動
- 從業務服務提供TCC型業務操做
- 業務活動管理器控制業務活動的一致性,它登記業務活動中的操做,並在業務活動提交時確認全部TCC型操做的confirm操做,在業務活動取消時調試用全部TCC操做的cancel操做
成本
- 實現TCC操做的成本
- 業務活動結束時confirm或取消操做的執行成本
- 業務活動日誌成本
適用範圍
- 強隔離性、嚴格一致性要求的業務活動
- 適用於執行時間較短的業務(好比處理帳戶、收費等業務)
用到的服務模式
方案特色
- 不與具體的服務框架耦合(在RPC機構中通用)
- 位於業務服務層,而非資源層
- 能夠靈活選擇業務資源的鎖定粒度
- TCC裏對每一個服務資源操做的是本地事務,數據被lock的時間短,可擴展性好(能夠說是爲獨立部署的SOA服務而設計的)
行業應用案例
TCC操做

Try:嘗試執行業務
- 完成多有業務檢查(一致性)
- 預留必須業務資源(隔離性)
Confirm:確認執行業務
- 真正執行業務
- 不作任何業務檢查
- 只使用Try階段預留的業務資源
- Confirm操做要知足冪等性
Cancel:取消執行業務
- 釋放Try階段預留的業務資源
- Cancel操做要知足冪等性
與2PC協議比較
- 位於業務服務層而非資源層
- 沒有單獨的準備(Prepare)階段,Try操做兼備資源操做與準備能力
- Try操做能夠靈活選擇業務資源的鎖定粒度(以業務定粒度)
- 較高開發成本
歡迎關注本站公眾號,獲取更多信息