Sentinel笔记
Sentinel是阿里巴巴开源的一款分布式系统的流量控制和熔断降级框架,具有以下特点:
- 支持多种流量控制规则:Sentinel支持基于QPS、线程数、CPU负载等多种流量控制规则,能够针对不同的应用场景进行灵活的流量控制。
- 支持多种熔断降级策略:Sentinel支持基于异常比例、异常数等多种熔断降级策略,能够在保证服务可用性的同时,对异常请求进行有效的控制。
- 支持多种资源类型:Sentinel支持基于URL、方法、参数等多种资源类型的流量控制和熔断降级,能够灵活地对不同的资源进行管理。
- 支持实时监控和统计:Sentinel提供实时的监控和统计功能,可以实时查看各个资源的流量控制和熔断降级情况,以及系统的QPS、RT、CPU负载等指标。
下面是Sentinel的一些学习笔记:
-
Sentinel的核心概念
Sentinel的核心概念包括资源、规则、统计和控制台。
- 资源:即需要进行流量控制或熔断降级的业务接口或方法。
- 规则:即对资源的流量控制或熔断降级策略。
- 统计:即对资源的实时监控和统计。
- 控制台:即对Sentinel进行管理和配置的Web界面。
-
Sentinel的流量控制
Sentinel支持多种流量控制规则,包括基于QPS、线程数、CPU负载等规则。我们可以通过在控制台中配置规则来控制资源的流量。
例如,我们可以为某个资源配置一个QPS限制规则,如:每秒最多允许访问100次。当该资源的访问量达到100次时,Sentinel会拒绝后续的访问请求。
-
Sentinel的熔断降级
Sentinel支持多种熔断降级策略,包括基于异常比例、异常数等规则。我们可以通过在控制台中配置规则来对资源进行熔断降级。
例如,我们可以为某个资源配置一个异常比例熔断规则,如:当异常比例达到50%时,启动熔断降级策略,拒绝后续的访问请求。在熔断降级期间,Sentinel会定时检查资源的健康状态,并在资源恢复正常后自动关闭熔断降级策略。
-
Sentinel的实时监
4.1Sentinel的实时监控和统计
Sentinel提供实时的监控和统计功能,可以实时查看各个资源的流量控制和熔断降级情况,以及系统的QPS、RT、CPU负载等指标。我们可以通过控制台或API来查看实时监控数据。
例如,我们可以在控制台中查看某个资源的实时访问流量、成功率、RT等指标,也可以查看系统的总体QPS、RT、CPU负载等指标。这些数据可以帮助我们快速发现系统的瓶颈和异常,以及调整规则来保证系统的稳定性和可用性。
5.Sentinel的使用实例
以下是Sentinel的一个简单示例,用于对某个业务接口进行流量控制和熔断降级:
5.1添加依赖
在Maven配置文件中添加如下依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
5.2配置规则
在应用程序的配置文件中添加如下规则:
spring.cloud.sentinel.datasource.ds1.nacos.server-addr=localhost:8848
spring.cloud.sentinel.datasource.ds1.nacos.data-id=${spring.application.name}-flow-rule
spring.cloud.sentinel.datasource.ds1.nacos.group-id=DEFAULT_GROUP
这里使用Nacos作为Sentinel的规则数据源,并将流量控制规则存储在Nacos中。
5.3添加注解
在需要进行流量控制和熔断降级的业务方法上添加如下注解:
@SentinelResource(value = "hello", blockHandler = "handleFlowQpsException")
public String hello() {
// 业务逻辑代码
}
这里使用@SentinelResource注解标记资源,并指定流量控制和熔断降级规则。
5.4定义降级处理方法
在业务类中定义降级处理方法:
public String handleFlowQpsException() {
return "请求过多,请稍后再试!";
}
这里用于处理流量控制和熔断降级时的异常情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具