Sentinel简单使用

Sentinel是一个强大的流控组件,提供实时监控、集群链路、流控规则、熔断规则和系统规则等功能,用于提升微服务的可靠性和容错性。安装启动后,可以通过可视化界面配置规则,如流控规则和熔断规则,实现服务的降级保护。Sentinel还支持热点Key限流,并提供@SentinelResource注解进行资源管理和降级处理。
摘要由CSDN通过智能技术生成

目录

1.官网

2.主要作用

 3.安装启动

3.功能详细

3.1实时监控

3.2 簇点链路     

 3.3流控规则

  3.4熔断规则

 3.4热点key限流

 3.5系统规则

4.@SentinelResource注解解释

1.官网

gitHub

GitHub - alibaba/Sentinel: A powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服务的高可用流控防护组件)

中文

介绍 · alibaba/Sentinel Wiki · GitHub

2.主要作用

高配版的Hystrix,可以降级熔断等,且配置更高。

 3.安装启动

下载

Releases · alibaba/Sentinel · GitHub

启动 java -jar 对应jar包  ps:端口是8080,注意启动端口不要被占用

登录账号 sentinel  密码 sentinel

导入响应依赖

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
 </dependency>

yml配置文件

spring:
  application:
    name: cloudalibaba-sentinel-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
    sentinel:
      transport:
        dashboard: localhost:8080
        port: 8719  #默认8719,应用与Sentinel控制台交互的端口,应用本地会起一个该端口占用HttpServer

第一次启动如果端口未被调用,则没有办法通过可视化界面进行查看。

启动之后界面

3.功能详细

3.1实时监控

查看监控的访问情况

3.2 簇点链路     

 3.3流控规则

创建流控规则

  3.4熔断规则

慢调用比例:选择满调用比例需要设置最大RT ,如果反应时间超过最多大RT则,记录慢调用为1反之则不记录,如果慢调用比例的个数比系统总调用的比例大于异常的占比则发生熔断。

异常比例和异常个数同理。

 3.4热点key限流

热点表示为经常访问的数据,很多时候对热点数据中访问频率最高的Top K数据,对其访问进行限制,

补充:

系统默认和客户都安自定义两种

@HystrixCommand => @SentinelResource

@SentinelResource 其中有两个参数资源名降级方法

 3.5系统规则

 Load自适应:系统load1作为引发指标,进行自适应系统保护,档系统超过响应的启发值时候会出现保护。

CPU usage(1.50+版本):当cpu超过阈值的时候触发保护

平均RT: 当单台机器所有入口流量的平均RT超过阈值触发系统保护,单位是毫秒。

并发线程数:当单台机器所有入口刘翔的并发线程达到阈值触发系统保护

入口QPS:当单台机器上所有入口流量的QPS达到阈值的时候进行保护

补充QPS和TPS区别:

QPS表示每秒查询量 QPS=并发量/平均响应时间 并发量=QPS*平均响应时间

TPS表示每秒传输的事务处理个数,软件测试测量单位。

4.@SentinelResource注解解释

官网:注解支持 · alibaba/Sentinel Wiki · GitHub

该注解不支持private方法,与@SentinelResource注解作用类似

    @RequestMapping("/fallback/{id}")
    @SentinelResource(value = "byFallbackName",blockHandler = "handleException",
            blockHandlerClass = CustomerBlockHandler.class,
            fallback = "handleException2",fallbackClass = CustomerBlockHandler.class,
            exceptionsToIgnore=IllegalArgumentException.class
    )
    public CommonResult fallback(@PathVariable("id") Long id) {
        if (id == 4) {
            throw new IllegalArgumentException ("IllegalArgumentException,非法参数异常....");
        }

注解参数

value ="资源名"

blockHandler使用降级方法

blockHandlerClass 引用降级方法的处理类 方法必须是static,否则无法解析

fallbackClass为对应类的class对象,对应的函数必须为static

fallback和defaultFallback若同时配置,只能有fallback会生效

blockHandler+fallback 同时存在,配置违规,代码也有异常先走配置文件的降级处理

execeptionsToIgnore 这只特定已成不需要降级处理

                                                                                                                       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值