文章出處

本地事務ACID大家應該都知道了,統一提交,失敗回滾,嚴格保證了同一事務內數據的一致性!而分布式事務不能實現這種ACID,它只能實現CAP原則里的某兩個,CAP也是分布式事務的一個廣泛被應用的原型,CAP(Consistency, Availability, Partition Tolerance), 闡述了一個分布式系統的三個主要方面, 只能同時擇其二進行實現. 常見的有CP系統, AP系統。

應用于CP和AP的原則在業界出現了一些框架:

CP系統就有二階段提交(強一致性)

 

AP系統就有TCC(補償型事務)

 

其中最近接觸的aspnetcore.cap就是一個滿足最終一致性的異步消息方案實現的,其中它為mysql,sqlserver都提供了解決方案,消息隊列可以有kafka和rabbitmq兩種選擇,根據自己的需要去安裝,源代碼在github上有開源,nuget上也有對應的包包!

對消息確保型-最終一致性的分布式事務的理解

  1. 服務A提交數據
  2. 向消息中心發送消息
  3. 消息中心向訂閱方推送消息
  4. 訂閱方處理自己的業務邏輯
  5. 失敗去反復去重試,直到成功,而不是向強一致性那樣,把A回滾的

同時也感謝cap作者楊曉東的細心解答!(http://www.cnblogs.com/savorboard

Github開源地址:https://github.com/dotnetcore/CAP

感謝!


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()