<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                通過將一系列同步的事務操作變為基于消息執行的異步操作, 避免了分布式事務中的同步阻塞操作的影響 這個方案真正實現了兩個服務的解耦, 解耦的關鍵就是異步消息和補償性事務. 這里以一個例子作為講解 ![](https://box.kancloud.cn/b5ba5fa1e07f80c53a7aad80f634cbe5_1638x502.png) 執行步驟如下: 1. MQ發送方發送遠程事務消息到MQ Server; 2. MQ Server給予響應, 表明事務消息已成功到達MQ Server. 3. MQ發送方Commit本地事務. 4. 若本地事務Commit成功, 則通知MQ Server允許對應事務消息被消費; 若本地事務失敗, 則通知MQ Server對應事務消息應被丟棄. 5. 若MQ發送方超時未對MQ Server作出本地事務執行狀態的反饋, 那么需要MQ Servfer向MQ發送方主動回查事務狀態, 以決定事務消息是否能被消費. 6. 當得知本地事務執行成功時, MQ Server允許MQ訂閱方消費本條事務消息 需要額外說明的一點, 就是事務消息投遞到MQ訂閱方后, 并不一定能夠成功執行. 需要MQ訂閱方主動給予消費反饋(ack) * 如果MQ訂閱方執行遠程事務成功, 則給予消費成功的ack, 那么MQ Server可以安全將事務消息移除; * 如果執行失敗, MQ Server需要對消息重新投遞, 直至消費成功. # 注意事項 * 消息中間件在系統中扮演一個重要的角色, 所有的事務消息都需要通過它來傳達, 所以消息中間件也需要支持 HAC 來確保事務消息不丟失. * 根據業務邏輯的具體實現不同,還可能需要對消息中間件增加消息不重復, 不亂序等其它要求. # 適用場景 * 執行周期較長 * 實時性要求不高 例如: * 跨行轉賬/匯款業務(兩個服務分別在不同的銀行中) * 退貨/退款業務 * 財務, 賬單統計業務(先發送到消息中間件, 然后進行批量記賬)
                  <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>

                              哎呀哎呀视频在线观看