引入依赖
<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,转载请注明。