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

                ## 流量控制規則實現 流量控制,原理是監控應用流量的QPS或者并發線程數等指標,當達到制定的閾值時對流量進行控制,以免被瞬時的流量高峰沖垮保障系統應用的高可用。 ## 流量控制的兩種方式 ![](https://img.kancloud.cn/de/78/de78b808f4af0fe25cdd5ace8808b333_481x268.png) * 并發線程數: 并發線程數限流用于保護業務線程數不被耗盡 * QPS : 當QPS超過某個閾值的時候,采取措施進行流量控制 一條限流規則主要由以下幾個因素注冊,我們科研組合這些因素來實現不同的限流效果 * resource: 資源名,限流規則的作用對象 * count: 限流的閾值 * grade: 限流的閾值類型(qps或者thread) * limitApp: 流控針對的調用來源,如果是default,則不區分調用來源 * strategy: 調用關系限流策略 * controlBehavior: 流量控制效果(直接拒絕,Warm up ,勻速排隊) * 直接拒絕: 末端的流量控制方式,當QPS超過任意規則的閾值后,新的請求就會立即拒絕,拒絕的方式拋出FlowException。這種方式適用于對系統處理能力確切的情況,比如通過壓測確定系統處理水平。 * Warm Up: 預熱模式,當系統長時間處理低水位的情況,當流量激瞬間把系統壓垮。通過預熱模式,讓流量緩慢增加,在一定時間內逐漸達到上線,給冷系統一個預熱的時間 * 排隊等待:嚴格控制請求通過的間隔時間,讓請求以均勻的速度通過,對應的漏桶算法。 ## 加依賴 ``` <!--alibaba sentinel--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> ``` ## 加配置 ![](https://img.kancloud.cn/d1/88/d1883e4443bbafc9548e2d90bf665666_1358x423.png) ![](https://img.kancloud.cn/aa/c3/aac30276fa2eaac7e1e9c31f6b11e726_1919x544.png) ## 加資源名稱 * 接口名稱默認是controller暴露的接口地址名稱(方法級別) * 也可以按服務名稱設計規則,以下小demo,按照服務名稱加的資源名稱 ![](https://img.kancloud.cn/e9/78/e978c4fe116107d15626c5128de9b7f2_1611x576.png) * 按照服務名稱加的資源名稱,需要使用@SentinelResource注解配合使用資源名稱 ![](https://img.kancloud.cn/cb/57/cb57fb8ef499bdb8169cb4fbf3457c83_1920x873.png) ## 根據資源設置流控規則 ![](https://img.kancloud.cn/59/51/5951439d8778473ae90d2acc7f0713bd_1460x390.png) ## 測試流控api ### 正常結果 ![](https://img.kancloud.cn/96/ac/96ac3cbb7742ea10ace4c3d896c9ea36_1902x506.png) ### 異常結果 ![](https://img.kancloud.cn/5d/70/5d703821d39000671be55d2a50fb1c56_1908x533.png) ## 查看sentinel-dashboard ![](https://img.kancloud.cn/8a/b6/8ab69919f9071eea5ed8624d798d87cb_1897x898.png) ![](https://img.kancloud.cn/d0/e8/d0e8169dca63382be90a831122af85e3_1920x847.png) ![](https://img.kancloud.cn/1f/d2/1fd271d6819b8114d2f0ab20aef4a204_1901x581.png) ![](https://img.kancloud.cn/a9/b3/a9b3d5f2ff91580e7dc6738f10c13ebf_1920x567.png) ## 查看sentinel日志 ![](https://img.kancloud.cn/c4/f9/c4f9bee14b2b6d53d683e10539e90955_941x528.png) cat sentinel-record.log.2019-10-23.0.1 |more ``` 2019-10-23 14:56:20.634 INFO [FlowRuleManager] Flow rules loaded: {} 2019-10-23 14:56:20.664 INFO App name resolved: user-center 2019-10-23 14:56:20.666 INFO [SentinelConfig] JVM parameter overrides csp.sentinel.charset: UTF-8 -> UTF-8 2019-10-23 14:56:20.667 INFO [SentinelConfig] JVM parameter overrides csp.sentinel.flow.cold.factor: 3 -> 3 2019-10-23 14:56:20.667 INFO [SentinelConfig] Application type resolved: 0 2019-10-23 14:56:20.671 INFO [MetricWriter] Creating new MetricWriter, singleFileSize=52428800, totalFileCount=6 2019-10-23 14:56:20.674 INFO [DynamicSentinelProperty] Config will be updated to: [FlowRule{resource=user-center, limitApp=default, grade=1, count=1.0, strategy=0, refResource=null, controlBehavior=0, warmUpPer iodSec=10, maxQueueingTimeMs=500, clusterMode=false, clusterConfig=null, controller=null}] 2019-10-23 14:56:20.679 INFO [FlowRuleManager] Flow rules received: {user-center=[FlowRule{resource=user-center, limitApp=default, grade=1, count=1.0, strategy=0, refResource=null, controlBehavior=0, warmUpPeri odSec=10, maxQueueingTimeMs=500, clusterMode=false, clusterConfig=null, controller=com.alibaba.csp.sentinel.slots.block.flow.controller.DefaultController@6f78c132}]} 2019-10-23 15:00:43.809 INFO Add child <sentinel_default_context> to node <machine-root> ```
                  <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>

                              哎呀哎呀视频在线观看