成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

說說分布式事務(三)

opengps / 3444人閱讀

摘要:最終一致性一簡介是由支付寶架構(gòu)師提供的一種柔性解決分布式事務解決方案主要包括三個步驟流程的關鍵流程如下圖以下單和扣減庫存為例子預生成訂單失敗了為什么要通過執(zhí)行預處理數(shù)據(jù)回滾可能預生成訂單成功但是接口返回失敗超時失敗所以預處理在某些情況下是有

最終一致性(一) TCC 簡介

TCC是由支付寶架構(gòu)師提供的一種柔性解決分布式事務解決方案,主要包括三個步驟:

TCC流程

TCC的關鍵流程如下圖(以下單和扣減庫存為例子)

Q: 預生成訂單失敗了,為什么要通過TCC執(zhí)行預處理數(shù)據(jù)回滾?

A: 可能預生成訂單成功,但是接口返回失敗(超時失敗),所以預處理在某些情況下是有預處理數(shù)據(jù),需要清

TCC異常場景

在整個流程,我們主要需要關注的是cancel失敗和confirm失敗引起的數(shù)據(jù)不一致現(xiàn)象

注意事項

TCC服務支持接口失敗重試,所以對TCC暴露的接口都需要滿足冪等性(根據(jù)事務Id很好滿足)

基于TCC的中心化事務一致性解決方法,各個應用服務器如果需要感知某次事務是否成功的成本很高,所以對于自身而言進行事務補償成本就會很高.舉個例子:

1??每次成功的執(zhí)行本應用服務器的事務以后,都需要把成功執(zhí)行的事務Id記錄
2??繼續(xù)confirm或者將confirm完的數(shù)據(jù)回滾,對用戶都很不友好,特別是需要confirm訂單或者回滾訂單數(shù)據(jù)
3??可以根據(jù)事務開始的時間,并且設計一個事務超時時間,如果在這個時間范圍以外事務還沒有處理完成,就可以當做這個事務已經(jīng)失敗,將預處理數(shù)據(jù)刪除
總體來說,事務補償機制,心智負擔過于沉重.所以只能依賴TCC服務器的失敗重試機制,如果失敗重試機制不能處理,只能人肉去處理(建議全程人肉,因為同時進行失敗重試和人肉的話,因為如果失敗重試和人肉都在操作同一條數(shù)據(jù),還需要考慮這種競爭的場景,對重試次數(shù)需要限定)

后記

是否一定需要TCC服務器?
不一定,可以讓交易鏈路來充當TCC服務器的角色,但是長期來看,TCC相當于是一個公用的組件,所以其它地方也需要TCC分布式事務,可以公用這一個組件(交易鏈路可以完成TCC所能完成的一切操作,把TCC多帶帶部署一個服務,僅僅是考慮整個系統(tǒng)的抽象結(jié)構(gòu)和功能復用)

這里說的預處理,指的是什么?
在整個分布式事務中預處理的含義其實很廣泛,比如訂單,所謂的預處理就是生成訂單,但是用戶真實是看不到這些訂單的,至于具體實現(xiàn)是在一張新表中記錄還是在原有的訂單表是加上標記位,具體實現(xiàn)方式由自己統(tǒng)籌考慮(當然還需要考慮記錄事務Id);像減庫存這種預處理,可以直接減少原始庫存,再通過另外一張表來記錄這次事務Id操作了哪個Sku的庫存數(shù)量,當然也可以不減少庫存只記錄操作,但是這種方式在計算實際庫存的時候復雜度會提高(需要減掉預處理的那部分)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64931.html

相關文章

  • 說說布式事務(二)

    摘要:以兩階段提交來說,主持人收到一個提案請求,打電話跟每個組員詢問是否通過并統(tǒng)計回復,然后將最后決定打電話通知各組員。三階段提交即是引入了另一個步驟,主持人打電話跟組員通知請準備通過提案,以避免沒人知道真實決定而造成決定不一致的失業(yè)危機。 3PC 以兩階段提交來說,主持人收到一個提案請求,打電話跟每個組員詢問是否通過并統(tǒng)計回復,然后將最后決定打電話通知各組員。要是主持人在跟第一位組員通完電...

    ysl_unh 評論0 收藏0
  • 說說布式事務(二)

    摘要:以兩階段提交來說,主持人收到一個提案請求,打電話跟每個組員詢問是否通過并統(tǒng)計回復,然后將最后決定打電話通知各組員。三階段提交即是引入了另一個步驟,主持人打電話跟組員通知請準備通過提案,以避免沒人知道真實決定而造成決定不一致的失業(yè)危機。 3PC 以兩階段提交來說,主持人收到一個提案請求,打電話跟每個組員詢問是否通過并統(tǒng)計回復,然后將最后決定打電話通知各組員。要是主持人在跟第一位組員通完電...

    Airy 評論0 收藏0
  • 說說布式事務(一)

    2PC(兩階段事務提交) 兩階段事務提交簡化圖 showImg(/img/bVsV61); 兩階段事務提交異常點 節(jié)點本身故障(比如Down機) 節(jié)點之間通信故障 兩階段事務提交錯誤點分析 showImg(/img/bVsV56); 說明 圖中有問號的條目,是我不確定的地方,但是不影響這個分布式事務的結(jié)果 圖中的感嘆號條目,個人感覺其實也是允許先發(fā)消息再記錄日志的,但是如果這樣子做以后發(fā)生D...

    chunquedong 評論0 收藏0
  • 說說布式事務(四)

    摘要:最終一致性二基于的分布式事務補償機制序列圖異常場景處理預創(chuàng)建訂單失敗如果實際預創(chuàng)建訂單成功訂單定時補償機制定時刪除這部分訂單不影響數(shù)據(jù)一致性下單失敗預扣減庫存失敗如果預扣減庫存真實失敗則下單失敗訂單由定時補償機制定時刪除其它應用參照場景的處 最終一致性(二) 基于MQ的分布式事務補償機制 序列圖 showImg(https://segmentfault.com/img/bVzeHX);...

    qiangdada 評論0 收藏0
  • 說說布式事務(四)

    摘要:最終一致性二基于的分布式事務補償機制序列圖異常場景處理預創(chuàng)建訂單失敗如果實際預創(chuàng)建訂單成功訂單定時補償機制定時刪除這部分訂單不影響數(shù)據(jù)一致性下單失敗預扣減庫存失敗如果預扣減庫存真實失敗則下單失敗訂單由定時補償機制定時刪除其它應用參照場景的處 最終一致性(二) 基于MQ的分布式事務補償機制 序列圖 showImg(/img/bVzeHX); 異常場景處理 預創(chuàng)建訂單失敗:如果實際預創(chuàng)建...

    Anchorer 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<