Sentinel 分布式流量防卫兵——简单入门
文档
官网下载地址
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.统计时长
当前的规则计时的时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)