一、前言
Sentinel 是面向分布式服務(wù)架構(gòu)的高可用流量防護組件,主要以流量為切入點,從限流、流量整形、熔斷降級、系統(tǒng)負載保護、熱點防護等多個維度來幫助開發(fā)者保障微服務(wù)的穩(wěn)定性。
例如搶購秒殺系統(tǒng),在很短的時間會有非常大的并發(fā)請求過來,如果不做限流可能一下子服務(wù)器就崩了。
二、安裝
下載地址:https://github.com/alibaba/Sentinel/releases
運行
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar

1.png
用戶名和密碼:sentinel
三、使用
3.1 maven 依賴
pom.xml中加入如下依賴:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
3.2 application.properties
# dashboard
spring.cloud.sentinel.transport.dashboard=localhost:8080
四、測試
用jmeter循環(huán)請求。
可以看到qps(Queries-per-second)2萬左右。

QQ截圖20210528105310.png
加上流量控制,qps 5000封頂

QQ截圖20210528105749.png
監(jiān)控臺可以看到通過的qps封頂5000,其它的都被拒絕了。

QQ截圖20210528110333.png
流量控制規(guī)則多種,有快速失敗、Warm Up、排隊等待??梢愿鶕?jù)實際情況來配置。

QQ截圖20210528110253.png
五、結(jié)語
源碼地址:https://github.com/tigerleeli/xiaohuge-blog/tree/master/spring-cloud-alibaba-sentinel
同步微信公眾號:小虎哥的技術(shù)博客