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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # 1. 按照資源名稱限流 步驟如下: **1. 資源代碼** ```java @RestController public class RateLimitController { /** * 如果是通過url地址 /byResource 進行限流,則為按照url地址限流。 * 如果是通過SentinelResource設置的資源名稱 byResource 進行限流,則為按照資源名稱限流。 * value="byResource"的命名不要求與 /byResource 相同,但要求全局唯一。 */ @GetMapping("/byResource") @SentinelResource(value = "byResource", blockHandler = "handleException") public String byResource() { return "result:{code: 200, message: 按資源名稱限流測試OK}"; } /** * 當byResource方法發生限流時該方法就會被自動調用 */ public String handleException(BlockException exception) { return "result:{code: 444, message:"+exception.getClass().getCanonicalName(); } } ``` **2. 流控規則** ![](https://img.kancloud.cn/ec/bd/ecbde14c432f445e9b111060c4b6443a_850x404.png) **3. 演示效果** 在1s內沒有超過1次請求不被限流,當在1s內發出超過1次的請求后被限流,`handleException`方法被調用。 ![](https://img.kancloud.cn/ea/1d/ea1da1464756d3dd96be206e0aba4229_1256x252.gif) <br/> # 2. 按照url地址限流 按照url地址限流,則限流處理采用Sentinel默認的處理信息。將資源名改成url地址即可,如將上面的`byResource`改成`/byResource`,便是按照url地址限流,默認得到的處理信息如下。 ![](https://img.kancloud.cn/06/cf/06cf202431aeb81b0985afe37b06aa19_1229x267.png) <br/> # 3. 自定義限流處理邏輯 `blockHandler`定義的限流處理方法必須與業務代碼耦合在一塊,導致代碼膨脹。所以我們需要將限流處理方法抽取出來放在其他類中。 <br/> 步驟如下: **1. 自定義限流處理類** ```java import com.alibaba.csp.sentinel.slots.block.BlockException; public class Customerhandler { public static String handleException(BlockException exception) { return "result:{code: 444, message:" + exception.getClass().getCanonicalName(); } } ``` **2. 指定具體處理類和具體處理方法** ```java @RestController public class RateLimitController { @GetMapping("/rateLimit/customerBlockHandler") @SentinelResource(value = "customerBlockHandler", blockHandlerClass = Customerhandler.class, //指定具體處理類 blockHandler = "handleException") //指定Customerhandlerl類中的處理方法 public String customerBlockHandler() { return "result:{code: 200, message: 按資源名稱限流測試OK}"; } } ``` **3. 限流規則** :-: ![](https://img.kancloud.cn/01/bf/01bf6920e318a4aa6151a638c23269ac_844x367.png) **4. 演示效果** 在1s內沒有超過1次請求沒有被限流,1s內超過1次請求后被限流,`handleException`方法被調用。 ![](https://img.kancloud.cn/a7/82/a782dfb8593a3771c74644b466cbbd18_1256x252.gif)
                  <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>

                              哎呀哎呀视频在线观看