1-创建SpringCloud应用
sentinel-datasource-nacos
2-引入依赖
<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>
3-添加配置信息
spring.application.name=sentinel-datasource-nacos
server.port=8883
# sentinel dashboard 地址
spring.cloud.sentinel.transport.dashboard=localhost:8883
# nacos 地址
spring.cloud.sentinel.datasource.ds.nacos.server-addr=localhost:8848
spring.cloud.sentinel.datasource.ds.nacos.dataId=${spring.application.name}-sentinel
spring.cloud.sentinel.datasource.ds.nacos.groupId=DEFAULT_GROUP
# 规则类型
spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow
4-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中持久化规则也会更新,重启后依然保持。














网友评论