<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # :-: ### 1、兩階段提交(2pc) 兩階段提交協議(Two Phase Commitment Protocol)中,涉及到兩種角色 一個事務協調者(coordinator):負責協調多個參與者進行事務投票及提交(回滾)多個事務參與者(participants):即本地事務執行者 總共處理步驟有兩個(1)投票階段(voting phase):協調者將通知事務參與者準備提交或取消事務,然后進入表決過程。參與者將告知協調者自己的決策:同意(事務參與者本地事務執行成功,但未提交)或取消(本地事務執行故障);(2)提交階段(commit phase):收到參與者的通知后,協調者再向參與者發出通知,根據反饋情況決定各參與者是否要提交還是回滾; 如果所示 1-2為第一階段,2-3為第二階段 如果任一資源管理器在第一階段返回準備失敗,那么事務管理器會要求所有資源管理器在第二階段執行回滾操作。通過事務管理器的兩階段協調,最終所有資源管理器要么全部提交,要么全部回滾,最終狀態都是一致的 ### 2、TCC #### 基本原理 TCC 將事務提交分為 Try - Confirm - Cancel 3個操作。其和兩階段提交有點類似,Try為第一階段,Confirm - Cancel為第二階段,是一種應用層面侵入業務的兩階段提交。 | 操作方法 | 含義 | | --- | --- | | Try | 預留業務資源/數據效驗 | | Confirm | 確認執行業務操作,實際提交數據,不做任何業務檢查,try成功,confirm必定成功,需保證冪等 | | Cancel | 取消執行業務操作,實際回滾數據,需保證冪等 | 3、事務消息 消息事務其實就是基于消息中間件的兩階段提交,將本地事務和發消息放在同一個事務里,保證本地操作和發送消息同時成功。下單扣庫存原理圖:![](https://img.kancloud.cn/c2/11/c2115e4f48dd81cec26d9b99ec96e5cc_765x485.png) ### 優缺點比較 | 事務方案 | 優點 | 缺點 | | --- | --- | --- | | 2PC | 實現簡單 | 1、需要數據庫(一般是XA支持) 2、鎖粒度大,性能差 | | TCC | 鎖粒度小,性能好 | 需要侵入業務,實現較為復雜,復雜業務實現冪等有難度 | | 消息事務 | 業務侵入小,無需編寫業務回滾補償邏輯 | 事務消息實現難度大,強依賴第三方中間件可靠性 | ##
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看