回覆列表
  • 1 # 帝俊之夢1

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

    由於支付寶整個架構是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事務的可用性。

  • 中秋節和大豐收的關聯?
  • 租用農村土地修建固定建築合法嗎?