阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

用Nacos存储Sentinel的限流规则

195次阅读
没有评论

共计 1701 个字符,预计需要花费 5 分钟才能阅读完成。

1. 用 Nacos 存储 Sentinel 的限流规则

1. 创建工程, 添加依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-datasource-nacos</artifactId> </dependency>

2. 添加客户端配置

添加 Sentinel 的控制地址、Nacos 的地址, 并自定义 Nacos 中的 dataId 和 groupId

spring.application.name=datasource-nacos
# 应用服务 WEB 访问端口
server.port=8092
spring.cloud.sentinel.transport.dashboard=localhost:8080
#Nacos 地址
spring.cloud.sentinel.datasource.ds.nacos.server-addr=localhost:8848
#自定义 Nacos 中存储规则的 dataId
spring.cloud.sentinel.datasource.ds.nacos.data-id=${spring.application.name}
#自定义 Nacos 中存储规则的 groupid
spring.cloud.sentinel.datasource.ds.nacos.group-id=DEFAULT_GROUP
#定义存储的规则类型为 flow
spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow

3. 自定义埋点

@RestController public class SentinelController {@GetMapping("/hello") // 自定义埋点 @SentinelResource("hello") public String hello(){return "Hello Sentinel Demo"; } }

4. 添加 Nacos 配置

在 Nacos 中添加如图配置信息

用 Nacos 存储 Sentinel 的限流规则

配置内容:

[ {"resource": "/hello", "limitApp": "default", "grade": 1, "count": 3, "strategy": 0, "controlBehavior": 0, "clusterMode": false } ]
  • resource: 资源名, 即限流规则的作用对象

  • limitApp: 流控针对的调用来源

  • grade : 限流阀值类型 (QPS 或并发线程数).0 代表根据并发数量来限流,1 代表根据 QPS 来进行流量控制

  • count: 限流阀值

  • strategy: 调用关系限流策略

  • controlBehavior: 流量控制效果, 有 3 个选项: 直接拒绝、Warm Up、匀速排队

  • clusterMode: 是否为集群模式

5. 测试配置的持久化

步骤

1. 确保启动了 Nacos、Sentinel 和自己编写的客户端

2. 访问 http://localhost:8088/hello, 并多次高频刷新. 如果出现 ”Blocked by Sentinel (flow limiting)” 的信息, 则代表配置成功

3. 来到 Sentinel 流控规则界面, 可以看到在 Nacos 中配置的限流规则

4. 在 Senitnel 中修改限流规则, 比如修改单机阀值为 10

5. 重启客户端, 会发现 Sentinel 中的限流阀值被刷新为 3, 代表修改并未持久化

6. 在 Nacos 中修改 count 的值为 20, 然后访问 http://localhost:8088/hello

7. 进入 Sentine 流控规则界面, 可以看到阀值变成了 20

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-06-06发表,共计1701字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中