日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud Alibaba:Sentinel 流控规则

發布時間:2025/3/19 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud Alibaba:Sentinel 流控规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1. 前言
  • 2. 閾值類型
    • 2.1 QPS
    • 2.2 線程數
  • 3. 流控模式
    • 3.1 直接
    • 3.2 關聯
    • 3.3 鏈路
  • 4. 流控效果
    • 4.1 快速失敗
    • 4.2 Warm Up
    • 4.3 排隊等待

1. 前言

在前面的文章中,已經介紹過了 Sentinel安裝和基本使用。這次主要講的是Sentinel 的流量控制規則,使用版本為1.8.0,它提供了以下幾個配置項:

  • 資源名: 唯一名稱,默認是接口的請求路徑
  • 針對來源: Sentinel可以針對調用者限流,填寫微服務名稱,默認default(不區分來源)
  • 閾值類型/單機閾值:
    • QPS:當調用該API的QPS達到閾值,進行限流
    • 線程數:當調用該API的線程數達到閾值,進行限流
  • 是否集群: 不需要
  • 流控模式:
    • 直接:該API達到限流條件,進行限流
    • 關聯:當關聯的資源達到閾值,就限流自己
    • 鏈路:只記錄指定鏈路上的流量,指定資源從入口資源進來的流量,如果達到條件,就進行限流(API級別的針對來源)
  • 流控效果:
    • 快速失敗:直接失敗,拋出異常
    • Warm Up:根據codeFactor(冷加載因子,默認3),從 閾值/codeFactor 開始,經過配置的預熱時長,才達到設定的QPS閾值
    • 排隊等待:勻速排隊,讓請求以勻速的速度通過,閾值類型必須設置為QPS,否則無效

2. 閾值類型

2.1 QPS

Queries Per Second,每秒請求量。

首先,我們給 /test 接口配置如下流控規則。

配置項值
QPS10
流控規則直接
流控效果快速失敗

接著,啟動JMeter在1秒內發送20個請求。結果就是產生大量異常,直接報錯Blocked by Sentinel (flow limiting) ,說明Sentinel攔截生效

2.2 線程數

將上一步的 QPS 改成 線程數,閾值設置為2,測試結果如下:

竟然所有請求都通過了,這是因為CPU的執行速度遠遠超出了我們的想象,并非每個HTTP請求都會New出新的線程進行執行,可能一個線程就全部處理掉了。為了讓CPU創建大量線程,我們改下接口代碼:

@GetMapping("/test")public String test(){try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}return "test";}

重新執行JMeter,結果如下,符合預期:

3. 流控模式

3.1 直接

針對當前資源的接口進行控制,前面的例子用的就是這項配置

3.2 關聯

當關聯的資源達到閾值,就限流自己。例如:當支付接口的調用達到閾值,就限制下單接口。

創建另一個接口 /test2,針對/test資源配置如下限流規則:

接下來,使用JMeter對/test2接口發起大量請求。然后,立刻馬上在瀏覽器訪問/test,就能重現Blocked by Sentinel (flow limiting)的異常。這就是關聯流控的使用方式。

3.3 鏈路

鏈路流控模式指的是,當從某個接口過來的資源達到限流條件時,開啟限流;它的功能有點類似于針對 來源配置項,區別在于:針對來源是針對上級微服務,而鏈路流控是針對上級接口,也就是說它的粒度更細.

舉個例子:

創建一個OrderService,里面寫個getOrder方法,并加上 @SentinelResource 注解,表示當前方法資源名稱是 getOrder

@Service public class OrderServiceImpl implements OrderService {@SentinelResource(value = "getOrder")@Overridepublic String getOrder(String id) {return "Order:" + id;} }

在controller分別創建2個接口:order1、order2

@GetMapping("/order1")public String order1(){return orderService.getOrder("111");}@GetMapping("/order2")public String order2(){return orderService.getOrder("222");}

打開sentinel控制臺,對getOrder資源進行流控規則設置。

入口資源設置為 /order1,表示從/order1接口調用才進行流控,如果從/order2調用的不做任何控制


在瀏覽器反復調用 http://localhost:8020/order1 ,發現流控沒生效 - -!

這是因為從1.6.3 版本開始, Sentinel Web filter默認收斂所有URL的入口context

1.7.0 版本開始(對應Spring Cloud Alibaba的2.1.1.RELEASE),官方在引入了spring.cloud.sentinel.web-context-unify 參數,用于控制是否收斂context;將其配置為 false 即可根據不同的URL 進行鏈路限流。

官方源碼如下:

如上圖所示:web-context-unify 為true的時候,取到的是收斂的context名稱sentinel_spring_web_context;為false的時候,就可以正確地取到 /order1 資源名。

在 application.yml 修改參數之后,再次測試,就能正常進行限流了

4. 流控效果

4.1 快速失敗

拋出Blocked by Sentinel (flow limiting)異常,前面的例子用的就是這項配置

4.2 Warm Up

預熱、冷啟動

如下圖,系統將從 10/冷卻因子3 開始,經過10秒時間緩慢將閾值升到單機閾值10

配置JMeter,在30秒內發送300次請求,也就是10次/秒。 測試結果如下:

一開始的請求,存在大量報錯,因為這時候閾值從3開始,還沒達到10

到最后,閾值達到10了就不再報錯

4.3 排隊等待

嚴格地控制請求通過的間隔時間,也就是讓請求勻速地通過,對應的是漏桶算法。這種方式適合用于請求以突刺狀來到,這個時候我們不希望一下子把所有的請求都通過,這樣可能會把系統壓垮;同時我們也期待系統以穩定的速度,逐步處理這些請求,以起到“削峰填谷”的效果,而不是拒絕所有請求。

注意:勻速排隊模式暫時不支持 QPS > 1000 的場景。

  • 官方手冊:https://github.com/alibaba/Sentinel/wiki/%E6%B5%81%E9%87%8F%E6%8E%A7%E5%88%B6
  • 源碼:com.alibaba.csp.sentinel.slots.block.flow.controller.RateLimiterController

測試:設置QPS=1,也就是每秒處理1個請求,剩下的排隊等待,5秒后超時

使用JMeter每秒發送2次請求

從第6秒開始,就開始出現超時異常

總結

以上是生活随笔為你收集整理的Spring Cloud Alibaba:Sentinel 流控规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 正在播放老肥熟妇露脸 | www日本视频 | 亚洲午夜福利一区二区三区 | 视频在线一区二区三区 | 免费又黄又爽又色的视频 | 一级啪啪片 | 国产91在线免费 | 9l视频自拍九色9l视频 | 欧美成人三区 | 日日拍夜夜拍 | 精品无码久久久久久久久果冻 | 男人操女人动漫 | 国产免费无码一区二区视频 | 99久久久精品免费观看国产 | 日韩精品一区二区三区高清免费 | 亚洲黄页 | www.日日夜夜 | 精品少妇白浆小泬60P | 婷婷在线综合 | 国产精品无码一本二本三本色 | 亚洲福利天堂 | 一区三区视频在线观看 | 日本一级黄色 | 日韩高清二区 | 日韩中文字幕精品 | 精品人伦一区二区三区蜜桃网站 | 日韩精品成人一区 | 日韩无码精品一区二区三区 | 亚洲色图在线观看 | 欧美综合一区二区三区 | 超碰加勒比 | 久久国产劲爆∧v内射 | 日日干天天射 | 国产com| 色呦呦网站入口 | 亚洲欧美伊人 | 国产欧美日韩免费 | 欧美三级黄色大片 | 久久国产精品影视 | 日本猛少妇色xxxxx | 乱色精品无码一区二区国产盗 | 欧美激情一区二区三区 | 欧美激情一级精品国产 | 成人午夜视频在线观看 | 色老二导航 | 久久久久久久久久影视 | 狠狠干天天爱 | 国产56页| 日韩午夜av | 欧美日韩亚洲色图 | 国产在线播放一区二区三区 | 久久免费的精品国产v∧ | 乱精品一区字幕二区 | 伊人一区二区三区四区 | 中文字幕五区 | 懂色av粉嫩av蜜乳av | 娇小萝被两个黑人用半米长 | 欧美日韩中文字幕一区 | 91成年人视频 | 亚洲成人久久久久 | 久久久久99精品成人片我成大片 | 日韩一区二区在线观看视频 | 欧美日韩精品中文字幕 | 新97超碰 | 天天看黄色 | 国产18页| 黄色片子网站 | a中文字幕| 黑人巨大精品欧美 | 午夜视| 亚洲激情视频在线 | 99久久婷婷国产一区二区三区 | 一级黄色免费毛片 | 亚洲欧美综合久久 | 狠狠撸在线观看 | 中文字幕女同 | 亚洲一区中文字幕永久在线 | 99在线精品免费视频 | 中文天堂在线资源 | 丝袜美腿av在线 | 人人澡人人澡人人澡 | 日本三级在线 | 欧美激情天堂 | 成人在线观看免费爱爱 | 四虎影院一区 | 久久久久久久久久久91 | 精品人妻一区二区三区四区 | 国产露脸国语对白在线 | 91视频免费视频 | 亚洲欧洲一级 | 国产三级国产精品国产国在线观看 | 日本少妇一区 | 短篇山村男同肉耽h | 国产特黄aaaaa毛片 | 欧美国产一级片 | 亚州中文 | 成人xxxxx | 日批动态图 | 中文字字幕第183页 欧美特级一级片 |