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 Sentinel
使用Sentinel进行服务调用的熔断和限流管理(SpringCloud2023实战)
Sentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。
815 3
|
监控 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之配置Sentinel的流量控制规则问题如何解决
337 0
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
470 1
|
12月前
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
人工智能 SpringCloudAlibaba 自然语言处理
SpringCloud Alibaba AI整合DeepSeek落地AI项目实战
在现代软件开发领域,微服务架构因其灵活性、可扩展性和模块化特性而受到广泛欢迎。微服务架构通过将大型应用程序拆分为多个小型、独立的服务,每个服务运行在其独立的进程中,服务与服务间通过轻量级通信机制(通常是HTTP API)进行通信。这种架构模式有助于提升系统的可维护性、可扩展性和开发效率。
4517 2
|
SpringCloudAlibaba 负载均衡 Dubbo
【SpringCloud Alibaba系列】Dubbo高级特性篇
本章我们介绍Dubbo的常用高级特性,包括序列化、地址缓存、超时与重试机制、多版本、负载均衡。集群容错、服务降级等。
1933 6
【SpringCloud Alibaba系列】Dubbo高级特性篇
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
2866 13
Spring Cloud Alibaba:一站式微服务解决方案
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
16240 114
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论