文档
官网下载地址
Release v1.8.3 · alibaba/Sentinel
官网WIKI
Sentinel · alibaba/spring-cloud-alibaba Wiki
启动Sentinel
- 基本启动
- java -jar sentinel-dashboard-1.8.3.jar
- 默认端口是8080
- java -Dserver.port=xxx -jar sentinel-dashboard-1.8.3.jar
- 自定义端口号等参数,启动
- http://localhost:8080/#/login
- java -jar sentinel-dashboard-1.8.3.jar
- 用户名和密码都是 sentinel
服务集成
- pom.xml
<!--Sentinel起步依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
- application.yml
server:
port: 8005
spring:
application:
name: 006-nacos-consumer
cloud:
nacos:
discovery:
server-addr: localhost:8848/
sentinel:
transport:
# Sentinel管理控制台的地址
dashboard: localhost:8080
# 微服务与Sentinel的通信端口
port: 8179
management:
endpoints:
web:
exposure:
include: '*'
Sentinel默认是懒加载的,所以我们先发送一个请求,才可以在管理控制台上,查看到我们监控的微服务
并且,所有的数据都是基于内存加载的,当服务器重启后,所有的流控规则和熔断规则,需要重新设置
流控规则
1.资源名称
- 资源名称默认为路径名称,如果通过注解进行定义资源名称,可以直接使用
2.阈值类型
QPS
每秒钟的请求响应的数量
如上所示,当每秒钟请求的数量超过1个时,就会抛出限流异常
并发线程数
当前的请求,只有一个线程进行处理所有的请求,如果超出一个线程所执行的工作量,就会抛出限流异常
测试时,建议使用一些能发送高并发请求的工具,才能看到效果
3.单机阈值
上限值,配合阈值类型
4.流控模式
直接
直接对该资源名进行流控监视
关联
当通过资源名称和关联名称进行操作时,关联名称触发了限流规则,资源名称无法访问
5.流控效果
快速失败
触发熔断,直接失败,抛出降级异常、流控异常
Warm Up
冷启动,避免当系统长期处于低水位的情况下,如果此时流量激增,很可能将整个系统拖垮
在冷启动规定的预热时间时间内,此时的触发的阈值只有原来阈值的三分之一,当冷启动的时间过去后,才会恢复原来的阈值,有一个预热过程
排队等待
让请求匀速的执行
出现限流异常
熔断规则
1.熔断策略
慢调用比例
当请求响应的时间,超过了设置的RT 平均响应时间 时,就会被认为是慢调用,满足规则时则会熔断降级方法
异常比例
按照出现异常的比例,进行服务的熔断
异常数
按照出现的异常数量,进行服务的熔断
2.最大RT
最大的响应时间,超过则为慢调用,只有慢调用比例才会使用该值进行设置
3.比例阈值
设置 0.0 ~ 1.0 的区间值,代表 0% ~ 100%
4.熔断时长
熔断降级的时间,可以理解为断路持续时间
5.最小请求数
至少发送多少次请求,才可以被记录统计
6.统计时长
当前的规则计时的时间