Spring Cloud Alibaba2022之Sentinel总结

Spring Cloud Alibaba2022之Sentinel学习

Sentinel介绍

Sentinel是一个面向云原生微服务的流量控制、熔断降级组件。
Sentinel 分为两个部分:

  • 核心库:(Java 客户端)不依赖任何框架/库,能够运行于所有 Java运行时环
    境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持3
  • 控制台:(Dashboard)基于 Spring Boot 开发,打包后可以直接运行,不需
    要额外的 Tomcat 等应用容器

安装

Sentinel下载地址如下:
Sentinel控制台下载地址
下载后,进入保存目录,通过命令执行jar文件

java -jar sentinel-dashboard-1.8.7.jar

在浏览器输入http://localhost:8080/#/login进行访问,用户名和密码都是sentinel
在这里插入图片描述

使用

在需要使用Sentinel组件的服务的pom文件中加入Sentinel核心库的依赖

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

启动服务,然后随便访问服务中的一个接口,这个接口会出现在控制台中。
在这里插入图片描述
如果不想访问接口,需要将eager设置为true
在这里插入图片描述

簇点链路:就是项目内的调用链路,链路中被监控的每个接口就是一个资源。默认情况下sentinel会监控SpringMVC的每一个端点(Endpoint),因此SpringMVC的每一个端点(Endpoint)就是调用链路中的一个资源。流控、熔断等都是针对簇点链路中的资源来设置的。

下面的图显示了服务的调用链路。访问了/consumer/test/{userId}接口,然后远程调用了http://providerservice/user/{userId}接口,通过右边的操作可以进行限流、降级。
在这里插入图片描述

服务限流

Sentinel的流控模式有3种:

  • 直接模式:对当前资源限流
  • 关联模式:高优先级资源触发阈值,对低优先级资源限流
  • 链路模式:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流

流控效果也有3钟:

  • 快速失败:达到阈值后,新的请求会被立即拒绝并抛出FlowException异常。是默认的处理方式;
  • warm up:也叫预热模式,是应对服务冷启动的一种方案;对超出阈值的请求同样是拒绝并抛出异常。但这种模式阈值会动态变化,从一个较小值逐渐增加到最大阈值;
  • 排队等待:让所有的请求按照先后次序排队执行,两个请求的间隔不能小于指定时长;
直接模式

给/consumer/test/{userId}接口设置的最大QPS为3,流控效果是快速失败,则这个接口每秒钟最多能处理3个请求,第4个请求会被拒绝并抛出异常
在这里插入图片描述

在Jmeter中创建测试计划进行测试,在1秒内:创建5个线程,这个5个线程只执行1次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值