热点参数限流
注:热点参数限流默认是对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-nacoshttps://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 ;