分布式事物 - 基於RPC調用 - TCC模式


前提

  • 前端業務(主服務)可以以同步或異步調用TCC框架,或者TCC框架本身就是同步異步兼備的.
  • 假定TCC框架擁有斷電后的自動恢復能力.同時,在下游業務出現無限失敗的情況下,也會進行無限的重試,以達到最終一致

正式開始

正常流程

一切安好.
可以觀察到,confirm操作完全交由TCC調用.在同步狀態下,無論最終成功與失敗,可能出現前端等待時間過長的問題.
個人認為,try階段,也可以直接注冊到TCC中,並完全交由TCC框架調用,客戶端只訪問其保留的接口.

預留失敗

因下游業務或網絡問題導致了預留失敗.
與正常流程相同,不過此時調用了TCC的cancel操作

總結

  • 實施TCC方案時,最好在立項伊始就要做好相應的數據庫設計與接口定義方案.能在數據庫中保存"預留"數據,同時相關代碼提供"預留","確認","取消"方法的接口定義以用作實現.
  • 整體來說,業務級人員減小了業務開發難度(雖然工作量變大了).同時將重心轉移到了"TCC框架"的實現.它需要保證高可用,數據安全,冪等,甚至需要能處理代碼迭代引起的版本差異的問題
  • 因為設計到事物管理問題,其框架開發難度也變大了,可以使用開源框架如:
    1. EasyTransaction
    2. ByteTCC
    3. ...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM