热点参数限流


注:热点参数限流默认是对Springmvc资源无效;


隔离和降级


1.开启feign.sentinel.enable=true

2.FeignClient(fallbackFactory=)

3.创建一个类并实现FallbackFactory接口

4.加入依赖
<!--添加Sentienl依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
熔断降级


规则持久化


注:严重不建议用在生产 环境中,一旦微服务重启,之前配置的规则会全部丢失;

注:这种模式做不到实时更新,频繁的访问数据库的话,会影响Sentinel的性能;

注:企业常用的规则持久化;
默认Sentinel无法整合nacos---需要修改sentinel控制台的源码;
sentinel 的持久化,我们希望这样:
-
可以在 sentinel 控制台中编辑 限流配置,并且同步到 nacos 做持久化
-
在 nacos 中修改了限流配置,也可以同步到 sentinel 控制台
要实现上述第一个功能需要对 sentinel 控制台的源码有所了解,并加依改造。
但 GitHub 上已经有人改造好了,做了个加强版 控制台。
GitHub - CHENZHENNAME/sentinel-dashboard-nacos: sentinel 控制台持久化到nacos 完成了限流、降级、系统、授权、热点规则、网关。保留了原始模式直接推送到客户端的内存中sentinel 控制台持久化到nacos 完成了限流、降级、系统、授权、热点规则、网关。保留了原始模式直接推送到客户端的内存中 - CHENZHENNAME/sentinel-dashboard-nacos
https://github.com/CHENZHENNAME/sentinel-dashboard-nacos





持久到nacos;
微服务客户端接入sentinel控制面板;
1.在各个微服务中引入依赖;
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.8.1</version>
</dependency>
2.修改配置文件;
spring.cloud.sentinel.transport.dashboard=localhost:8090
spring.cloud.sentinel.datasource.ds1-flow.nacos.server-addr=localhost:8848
spring.cloud.sentinel.datasource.ds1-flow.nacos.data-id=${spring.application.name}-flow-rules
# 还可以是 degrade authority param-flow
spring.cloud.sentinel.datasource.ds1-flow.nacos.rule-type=flow
spring.cloud.sentinel.datasource.ds1-flow.nacos.data-type=json
spring.cloud.sentinel.datasource.ds1-flow.nacos.group-id=SENTINEL_GROUP

点击 簇点链路,新增 一个流控规则:

注意,一定要点 带 2 的,只有带 2 的才能推送到 nacos,在 流控规则 选项中添加也不行,只能点击 蓝色方框 才能推送到 nacos;

添加成功后,nacos 中,你指定的命名空间下会自动生成 ${application-name}-flow-rules 格式的配置文件;


当你在 sentinel 控制台中,无论增加规则,还是修改规则,都会同步到 nacos;相反,修改 nacos 中 配置文件的限流规则,也会同步到 sentinel ;



















