<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] > [參考-微信公眾號](https://mp.weixin.qq.com/s/JrnKjj3kgEq8UDBp-VJQgg) ## 概述 冪等性是分布式系統設計中十分重要的概念 * **冪等性**原本是數學上的概念,即使公式:`f(x)=f(f(x))` 能夠成立的數學性質。 * 用在編程領域,則意為對同一個系統,使用同樣的條件,**一次請求和重復**的多次請求對系統資源的影響是一致的 * 具有這一性質的接口在設計時總是秉持這樣的一種理念:**調用接口發生異常并且重復嘗試時,總是會造成系統所無法承受的損失,所以必須阻止這種現象的發生** ## 實現原理 1. 調用接口前,先獲取一個全局唯一的令牌(Token) 2. 調用接口時,將 Token 放到 Header 頭中 3. 解析 Header 頭,驗證是否為有效 Token,無效直接返回失敗 4. 完成業務邏輯后,將業務結果與 Token 進行關聯存儲,設置失效時間 5. 重試時不要重新獲取 Token,用要上次的 Token ## 案例分析 訂單創建時,我們需要去減庫存,這時接口發生了超時,調用方進行了重試,這時是否會多扣一次庫存? 解決這類問題有 2 種方案: 1. 服務方提供相應的查詢接口,調用方在請求超時后進行查詢,如果查到了,表示請求處理成功了,沒查到就走失敗流程。 2. 調用方只管重試,服務方保證一次和多次的請求結果是一樣的。 對于第二種方案,就需要服務方的接口支持冪等性。
                  <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>

                              哎呀哎呀视频在线观看