Sentinel简单使用

目录

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,可以降级熔断等,且配置更高。

Sentinel简单使用_第1张图片

 3.安装启动

下载

Releases · alibaba/Sentinel · GitHub

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

登录账号 sentinel  密码 sentinel

导入响应依赖


            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
 

yml配置文件

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

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

启动之后界面

Sentinel简单使用_第2张图片

3.功能详细

3.1实时监控

查看监控的访问情况

Sentinel简单使用_第3张图片

3.2 簇点链路     

Sentinel简单使用_第4张图片

 3.3流控规则

创建流控规则

Sentinel简单使用_第5张图片

Sentinel简单使用_第6张图片

  3.4熔断规则

Sentinel简单使用_第7张图片

Sentinel简单使用_第8张图片

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

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

 3.4热点key限流

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

Sentinel简单使用_第9张图片

补充:

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

@HystrixCommand => @SentinelResource

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

Sentinel简单使用_第10张图片

 3.5系统规则

Sentinel简单使用_第11张图片

 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 这只特定已成不需要降级处理

                                                                                                                       

你可能感兴趣的:(JAVA,sentinel)