概述
1.开篇
前面陆陆续续5篇都在说sentinel服务降级、限流、熔断功能,这是最后一篇了,来聊一聊sentinel中的持久化配置吧。
首先说一下什么是持久化?——之前我们在做测试的时候,会在sentinel的界面中添加一些配置信息。但是当我们重启这些微服务之后,再到sentinel中查看,会发现之前配置的东西已经不存在了。
可能我们现在写的这些小项目顶多一两个配置文件,每次重启配置文件没了,我们就重新再新建这些配置文件。但是后面进了企业,配置文件肯定会越来越多,你还想去重新新建这些配置文件吗?你还有时间去再写一遍这些配置文件吗?肯定是:不!!!
这就引出了sentinel中的持久化规则配置。也就是说生产环境上需要对配置规则进行持久化。
2.项目源码
github源码地址:https://github.com/2656307671/SpringCloud-Alibaba-Sentinel
gitee源码地址:https://gitee.com/szh-forever-young/SpringCloud-Alibaba-Sentinel
下面的测试对应了git仓库中的8401这个微服务模块。
将限流配置规则持久化进Nacos保存,只要刷新8401某个rest地址,sentinel控制台的流控规则就能看到,只要Nacos里面的配置不删除,针对8401上sentinel上的流控规则持续有效。
首先需要在pom中添加 sentinel-datasource-nacos 依赖;在yml中的sentinel标签下添加nacos数据源datasource下的配置,详情参考git仓库。
我们在nacos中添加配置。配置信息解释:
resource:资源名称;
limitApp:来源应用;
grade:阈值类型,0表示线程数,1表示QPS;
count:单机阈值;
strategy:流控模式,0表示直接,1表示关联,2表示链路;
controlBehavior:流控效果,0表示快速失败,1表示Warm Up,2表示排队等待;
clusterMode:是否集群。
启动8401微服务模块,访问一次 /rateLimit/byUrl 请求,然后到sentinel中可以看到簇点链路已经有了。
因为我在nacos中的配置规则中定义的是 QPS > 1 则触发降级限流,多次访问,则出现下图的sentinel默认降级页面信息。
然后我们将8401微服务模块停掉,此时再到sentinel中查看,可以看到刚刚配置的的流控规则已经没了。
因为我们进行了规则持久化配置,也就是pom依赖 + yml起到了作用,再次重启8401微服务模块,稍等一会(同时多次访问 /rateLimit/byUrl 请求),之后刷新sentinel页面,可以看到刚刚的 /rateLimit/byUrl 请求对应的流控规则又出现了,此时就说明持久化验证通过。
3.服务熔断与限流框架的比较
最后
以上就是霸气白羊为你收集整理的SpringCloud Alibaba——Sentinel服务熔断与限流(六、规则持久化配置)1.开篇2.项目源码3.服务熔断与限流框架的比较的全部内容,希望文章能够帮你解决SpringCloud Alibaba——Sentinel服务熔断与限流(六、规则持久化配置)1.开篇2.项目源码3.服务熔断与限流框架的比较所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复