Sentinel笔记

Sentinel是阿里巴巴开源的一款分布式系统的流量控制和熔断降级框架,具有以下特点:

  1. 支持多种流量控制规则:Sentinel支持基于QPS、线程数、CPU负载等多种流量控制规则,能够针对不同的应用场景进行灵活的流量控制。
  2. 支持多种熔断降级策略:Sentinel支持基于异常比例、异常数等多种熔断降级策略,能够在保证服务可用性的同时,对异常请求进行有效的控制。
  3. 支持多种资源类型:Sentinel支持基于URL、方法、参数等多种资源类型的流量控制和熔断降级,能够灵活地对不同的资源进行管理。
  4. 支持实时监控和统计:Sentinel提供实时的监控和统计功能,可以实时查看各个资源的流量控制和熔断降级情况,以及系统的QPS、RT、CPU负载等指标。

下面是Sentinel的一些学习笔记:

  1. Sentinel的核心概念

    Sentinel的核心概念包括资源、规则、统计和控制台。

    • 资源:即需要进行流量控制或熔断降级的业务接口或方法。
    • 规则:即对资源的流量控制或熔断降级策略。
    • 统计:即对资源的实时监控和统计。
    • 控制台:即对Sentinel进行管理和配置的Web界面。
  2. Sentinel的流量控制

    Sentinel支持多种流量控制规则,包括基于QPS、线程数、CPU负载等规则。我们可以通过在控制台中配置规则来控制资源的流量。

    例如,我们可以为某个资源配置一个QPS限制规则,如:每秒最多允许访问100次。当该资源的访问量达到100次时,Sentinel会拒绝后续的访问请求。

  3. Sentinel的熔断降级

    Sentinel支持多种熔断降级策略,包括基于异常比例、异常数等规则。我们可以通过在控制台中配置规则来对资源进行熔断降级。

    例如,我们可以为某个资源配置一个异常比例熔断规则,如:当异常比例达到50%时,启动熔断降级策略,拒绝后续的访问请求。在熔断降级期间,Sentinel会定时检查资源的健康状态,并在资源恢复正常后自动关闭熔断降级策略。

  4. 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 "请求过多,请稍后再试!";
}

这里用于处理流量控制和熔断降级时的异常情况。

posted @   runrab  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示