Sentinel入门与进阶:微服务流量控制的最佳实践 ( 三 )
Sentinel
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
项目地址:https://gitcode.com/gh_mirrors/sentine/Sentinel
免费下载资源
·
5.配置持久化
目前的sentinel,无法满足我们生产环境的需求,因为一旦sentinel-dashboard发生重启,限流规则也会随之丢失。
sentinel规则的持久化: Sentinel自身就支持了多种不同的数据源来持久化规则配置,比如文件配置,Nacos配置,Zookeeper配置等。
接下来我们讨论一下,如何使用Nacos来实现规则的持久化配置。
5.1.在 pom.xml 中加入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-datasource</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
nacos 2.3.2 与 sentinel 1.8.8 版本
5.2.在nacos的配置中心加入配置
注意类型为 JSON
public 命名空间下加入
sca-sentinel-dashboard-sentinel-flow
[
{
"resource": "/sentinelTest/sayHello",
"limitApp": "default",
"grade": 1,
"count": 3
}
]
Data Id :和配置中的data_id相对应
Group:配置文件中的group-id
配置内容:
resource:接口名,即限流规则的作用对象
limitApp:流控针对的调用来源,若为 default 则不区分调用来源
grade:限流阈值类型(QPS 或并发线程数);0代表根据并发数量来限流,1代表根据QPS来进行流量控制
count:限流阈值
strategy:调用关系限流策略
controlBehavior:流量控制效果(直接拒绝、Warm Up、匀速排队)
clusterMode:是否为集群模式
5.3.修改项目配置
在 application.properties 中加入
ds-flow
可以自己定义
spring.cloud.sentinel.datasource.ds-flow.nacos.server-addr=127.0.0.1:8848
spring.cloud.sentinel.datasource.ds-flow.nacos.data-id=${spring.application.name}-sentinel-flow
spring.cloud.sentinel.datasource.ds-flow.nacos.group-id=DEFAULT_GROUP
spring.cloud.sentinel.datasource.ds-flow.nacos.rule-type=flow
spring.cloud.sentinel.datasource.ds-flow.nacos.data-type=json
spring.cloud.sentinel.datasource.ds-flow.nacos.username=nacos
spring.cloud.sentinel.datasource.ds-flow.nacos.password=nacos
spring.cloud.sentinel.datasource.ds-flow.nacos.namespace=DEFAULT_GROUP
5.4.查看Sentinel 流控规则
GitHub 加速计划 / sentine / Sentinel
22.24 K
7.98 K
下载
alibaba/Sentinel: Sentinel 是阿里巴巴开源的一款面向分布式服务架构的流量控制、熔断降级组件,提供实时监控、限流、降级和系统保护功能,适用于微服务治理场景。
最近提交(Master分支:2 个月前 )
195150bc
* fix issue 2485 which occur oom when using async servlet request.
* optimize imports
* 1. fix the same issue in the webmvc-v6x
2. improve based on review comments 1 个月前
b78b09d3
1 个月前
更多推荐
已为社区贡献7条内容
所有评论(0)