引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.5.2</version>
</dependency>
添加配置信息
# cloud:
# sentinel:
# datasource:
# ds:
# nacos:
# dataId: ${spring.application.name}-sentinel
# groupId: DEFAULT_GROUP
# rule-type: flow
# server-addr: 81.71.147.62:8848
# transport:
# dashboard: 81.71.147.62:8858
# nacos:
# discovery:
# server-addr: 81.71.147.62:8848
# dataId:$android-cloud-sentinel: Nacos中创建限流规则
DataID:项目名-sentinel
Group: DEFAULT_GROUP
JSON:
[
{
"resource": "/hello",
"limitApp": "default",
"grade": 1,
"count": 5,
"strategy": 0,
"controlBehavior": 0,
"clusterMode": false
}
] resource:资源名
limitApp:流控针对的调用来源,default不区分来源
grade:限流阈值类型(0-根据并发数量来限流 1-根据QPS来进行流量控制)
count:限流阈值
strategy:调用关系限流策略
controlBehavior:流量控制效果(直接拒绝、WarmUP、匀速排队)
clusterMode:是否集群模式
5-启动程序,访问测试
6-深入思考
对于接口的限流规则可以通过两个地方修改:Sentinel控制台、Nacos控制台
Sentinel控制台中修改规则:仅存在于服务的内存中,不会修改Nacos中的配置值,重启后恢复原来的值。
Nacos控制台中修改规则:服务的内存中规则会更新,Nacos中持久化规则也会更新,重启后依然保持。
本文作者为DBC,转载请注明。