Sentinel 初始化监控
第一步:创建8401微服务 cloudalibaba-sentinel-service 并引入依赖
.yml 配置文件
server:
port: 8401
spring:
application:
name: cloudalibaba-sentinel-service
cloud:
nacos:
server-addr: localhost:8848 #Nacos服务注册中心地址
sentinel:
transport:
dashboard: localhost:8080 #配置Sentinel dashboard地址
port: 8719 #默认8719端口,假如被占用会自动从8719开始依次+1扫描,直至找到未被占用端口
<dependencies>
<!-- Nocas客户端依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<!-- Sentinel依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<!-- SpringCloud alibaba sentinel-datasource-nacos 后续做持久化用到 -->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-datasource-nacos</artifactId>
<version>1.7.0</version>
</dependency>
<!-- 引入Feign依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
</dependencies>
第二步:启动 Main8401 微服务
分别启动 Main8401、Sentinel8080 服务;启动后访问 Main8401 中的请求,即可在Sentinel8080服务监控中看到监控的Main8401服务;
要先访问Controller中配置的请求处理方法;例如:http://localhost:8401/testB
Sentinel 流控规则简介
资源名:唯一名称,默认请求路径;
针对来源:Sentinel 可以针对调用者进行限流,填写微服务名称,默认default(不区分来源)
阈值类型/单击阈值:
a、QPS(每秒钟请求的数量):当调用该api的QPS达到阈值的时候,进行限流
b、线程数量:当调用该api的线程数达到阈值时,进行限流
是否集群:不需要集群
流控模式:
a、直接:api达到限流条件时,直接限流
b、关联:当关联的资源达到阈值时,就限流自己
c、链路:只记录指定链路上的流量(指定资源从入口资源进来的流量,
如果达到阈值,就进行限流)【api级别的针对来源】
流控效果:
a、快速失败:直接失败,抛异常
b、Warm Up:根据 codeFactor(冷加载因子,默认3)的值,
从 阈值/codeFactor(阈值除以冷加载因子3),经过预热时长才达到设置的QPS阈值
c、等待排队:匀速排队,让请求以匀速的速度通过,阈值类型必须设置为QPS,否则无效