支付寶運營架構中柔性事務指的是什麼?

2021-07-23 07:55:12 字數 1297 閱讀 1552

支付寶架構與技術

中對柔性事務有大致的描述:

可以看出,柔性事務(遵循base理論)是指相對於acid剛性事務而言的。

支付寶所說的柔性事務分為:兩階段型、補償型、非同步確保型、最大努力通知型幾種。

由於支付寶整個架構是soa架構,因此傳統單機環境下資料庫的acid事務滿足了分布式環境下的業務需要,以上幾種事務類似就是針對分布式環境下業務需要設定的。

其中:1、兩階段型:就是分布式事務兩階段提交,對應技術上的xa、jta/jts。

這是分布式環境下事務處理的典型模式。

2、補償型:

tcc型事務(try/confirm/cancel)可以歸為補償型。

補償型的例子,在乙個長事務(long-running)中,乙個由兩台伺服器一起參與的事務,伺服器a發起事務,伺服器b參與事務,b的事務需要人工參與,所以處理時間可能很長。如果按照acid的原則,要保持事務的隔離性、一致性,伺服器a中發起的事務中使用到的事務資源將會被鎖定,不允許其他應用訪問到事務過程中的中間結果,直到整個事務被提交或者回滾。這就造成事務a中的資源被長時間鎖定,系統的可用性將不可接受。

ws-businessactivity提供了一種基於補償的long-running的事務處理模型。還是上面的例子,伺服器a的事務如果執行順利,那麼事務a就先行提交,如果事務b也執行順利,則事務b也提交,整個事務就算完成。但是如果事務b執行失敗,事務b本身回滾,這時事務a已經被提交,所以需要執行乙個補償操作,將已經提交的事務a執行的操作作反操作,恢復到未執行前事務a的狀態。這樣的saga事務模型,是犧牲了一定的隔離性和一致性的,但是提高了long-running事務的可用性。

3、非同步確保型

將一些同步阻塞的事務操作變為非同步的操作,避免對資料庫事務的爭用,典型例子是熱點賬戶非同步記賬、批量記賬的處理。

4、最大努力型

ppt中提到的例子交易的訊息通知(例如商戶交易結果通知重試、補單重試)

如果有技術背景,可以參考另外乙個文件

大規模soa系統中的分布事務處事

,對支付寶分布式事務處理機制有較為詳細描述。

App 中的 微信支付 支付寶支付

返回的事件 function weixinpay data else if document.attachevent else onbridgeready function res vm.number null vm.router.go 1 vm.base url index.html deposi...

App 中的 微信支付 支付寶支付

返回的事件 function weixinpay data else if document.attachevent else onbridgeready function res vm.number null vm.router.go 1 vm.base url index.html deposi...

揭秘支付寶中的深度學習引擎 xNN

深度學習 雲端還是移動端?近來,深度學習 dl 在影象識別 語音識別 自然語言處理等諸多領域都取得了突破性進展。dl通常給人以計算複雜 模型龐大的印象 從siri語音助手到各種聊天機械人 再到支付寶 掃五福 移動端收集資料 雲端加工處理似乎成為一種常識。然而對很多應用來說,這種模式其實只是無奈之選。...