SpringCloud Alibaba——Sentinel服务熔断与限流(六、规则持久化配置)

简介: SpringCloud Alibaba——Sentinel服务熔断与限流(六、规则持久化配置)

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里面的配置不删除,针对8401sentinel上的流控规则持续有效。

首先需要在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 Up2表示排队等待;
clusterMode
:是否集群。


启动8401微服务模块,访问一次 /rateLimit/byUrl 请求,然后到sentinel中可以看到簇点链路已经有了。


因为我在nacos中的配置规则中定义的是 QPS > 1 则触发降级限流,多次访问,则出现下图的sentinel默认降级页面信息。


然后我们将8401微服务模块停掉,此时再到sentinel中查看,可以看到刚刚配置的的流控规则已经没了。


因为我们进行了规则持久化配置,也就是pom依赖 + yml起到了作用,再次重启8401微服务模块,稍等一会(同时多次访问 /rateLimit/byUrl 请求),之后刷新sentinel页面,可以看到刚刚的/rateLimit/byUrl 请求对应的流控规则又出现了,此时就说明持久化验证通过。


3.服务熔断与限流框架的比较


相关文章
|
Java UED Sentinel
微服务守护神:Spring Cloud Sentinel,让你的系统在流量洪峰中稳如磐石!
【8月更文挑战第29天】Spring Cloud Sentinel结合了阿里巴巴Sentinel的流控、降级、熔断和热点规则等特性,为微服务架构下的应用提供了一套完整的流量控制解决方案。它能够有效应对突发流量,保护服务稳定性,避免雪崩效应,确保系统在高并发下健康运行。通过简单的配置和注解即可实现高效流量控制,适用于高并发场景、依赖服务不稳定及资源保护等多种情况,显著提升系统健壮性和用户体验。
302 1
|
监控 Java API
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
456 0
深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南
|
监控 Dubbo 应用服务中间件
通用快照方案问题之Sentinel与SpringCloud和Dubbo的整合如何解决
通用快照方案问题之Sentinel与SpringCloud和Dubbo的整合如何解决
173 0
|
监控 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
286 0
|
自然语言处理 监控 开发者
springCloud之Sentinel流量路由、流量控制、流量整形、熔断降级
springCloud之Sentinel流量路由、流量控制、流量整形、熔断降级
568 0
|
Java Nacos Maven
Sentinel1.8.6更改配置同步到nacos(项目是Gateway)
Sentinel1.8.6 nacos springcloud springcloud-alibaba gateway
585 0
|
Java API Nacos
第十二章 Spring Cloud Alibaba Sentinel
第十二章 Spring Cloud Alibaba Sentinel
1321 0
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
8月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
9月前
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
3003 2
下一篇
oss云网关配置