Sentinel+Nacos实现资源流控、降级、热点、授权( 二 )


springboot项目接入Sentinel控制台配置规则1.引入依赖
<dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>注意我这里没有写版本,因为我在父项目的pom文件中指定了阿里巴巴的依赖版本,子项目的相关依赖会自动寻找版本 。
<dependencyManagement>    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-dependencies</artifactId>            <version>Hoxton.SR8</version>            <type>pom</type>            <scope>import</scope>        </dependency>        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-alibaba-dependencies</artifactId>            <version>2.2.3.RELEASE</version>            <type>pom</type>            <scope>import</scope>        </dependency>    </dependencies></dependencyManagement>2.配置yml
接下去我们可以在项目中连接到该控制台,这样项目里的资源就可以被控制台管理了 。
spring:  Application:    name: sentinel  cloud:    sentinel:      transport:        port: 8719        dashboard: localhost:8080  #启动本项目后需要请求一次才能向sentinel控制台注册注意:启动项目后需要请求一次项目才能向sentinel控制台注册 。
启动项目后我们请求一下项目随便一个接口,然后在控制台可以看到多了一个新项目的菜单了 。

Sentinel+Nacos实现资源流控、降级、热点、授权

文章插图
新项目的菜单
3.控制台配置项目资源规则
我在项目里写了一个简单的接口如下:
@RequestMapping("/")public String test(){    return "ok";}可以在控制台的簇点链路菜单看到这个接口资源 。
Sentinel+Nacos实现资源流控、降级、热点、授权

文章插图
簇点链路菜单
可以看到表格右边有四个按钮,可以对该资源进行流控、降级、热点、授权的配置 。
  • 流控
    流量控制,可以在流控中设置主要三块内容:阈值类型+阈值、流控模式、流控效果 。

Sentinel+Nacos实现资源流控、降级、热点、授权

文章插图
流控
阈值类型+阈值:可以设置QPS的阈值,代表每秒最多允许请求多少次资源;可以设置线程数,代表可以同时运行的线程数量 。
流控模式:有直接、关联、链路三种 。
--直接:代表超过阈值直接限流
--关联:代表关联的资源达到阈值时也进行限流(比如支付接口不行了把下单接口也限流掉) 。
--链路:代表当服务到达阈值时,所有使用该服务的服务也限流 。
流控效果:有快速失败、Warm Up、排队等待三种 。
--快速失败:直接限流操作 。
--Warm Up:冷启动,需要配置预热时长,意思是当突然有大量请求时慢慢的放一些请求通过,预热时长过后恢复到正常限流状态,达到阈值时再进行限流 。
--排队等待:让限流的请求排队等待系统空闲时再通过,需要配置超时时间,过了超时时间再拒绝请求 。
  • 降级
    降级有慢调用比例、异常比例、异常数三种熔断策略 。

Sentinel+Nacos实现资源流控、降级、热点、授权

文章插图
降级
--慢调用比例:需要设置最大RT(最大的响应时间)和比例阈值(0.0至1.0之间),请求大于最大RT的判定为慢调用,当慢调用比例到达比例阈值时进行熔断降级 。


推荐阅读