<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 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 概述 消息總線(Message Queue),后文稱MQ,是一種跨進程的通信機制,用于上下游傳遞消息 ## 什么時候不使用消息總線 調用方實時依賴執行結果的業務場景,請使用調用,而不是MQ 如:用戶登錄場景 ## 什么時候使用MQ ### 數據驅動的任務依賴 任務之間有一定的**依賴關系** 比如: 1. task3需要使用task2的輸出作為輸入 2. ask2需要使用task1的輸出作為輸入 實例: 1. task1準時開始,結束后發一個“task1 done”的消息 2. task2訂閱“task1 done”的消息,收到消息后第一時間啟動執行,結束后發一個“task2 done”的消息 3. task3同理 > MQ只用來傳遞上游任務執行完成的消息,并不用于傳遞真正的輸入輸出數據 ### 上游不關心執行結果 如:關注“用戶發布帖子”這個事件,比如招聘用戶發布帖子后,招聘業務要獎勵58豆 采用MQ解耦: 1. 帖子發布成功后,向MQ發一個消息 2. 哪個下游關注“帖子發布成功”的消息,主動去MQ訂閱 采用MQ的優點是: 1. 上游執行時間短 2. 上下游邏輯+物理解耦,除了與MQ有物理連接,模塊之間都不相互依賴 3. 新增一個下游消息關注方,上游不需要修改任何代碼 ### 上游關注執行結果,但執行時間很長 如:調用離線處理或者跨公網調用 實例:微信支付,跨公網調用微信的接口,執行時間會比較長,但調用方又非常關注執行結果 一般采用“回調網關+MQ”方案來解耦: 1. 調用方直接跨公網調用微信接口 2. 微信返回調用成功,此時并不代表返回成功 3. 微信執行完成后,回調統一網關 4. 網關將返回結果通知MQ 5. 請求方收到結果通知
                  <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>

                              哎呀哎呀视频在线观看