Sentinel

目录

控制台启动

服务提供模块

流控规则

流控模式

流控效果

熔断规则

慢调用比例

异常比例

异常数

@SentinelResource

局部限流处理

自定义全局类

热点规则

授权规则

系统规则

规则持久化

Sentinel整合OpenFeign


控制台启动

下载jar包

启动:java ‐jar sentinel‐dashboard‐1.8.0.jar

访问:http://localhost:8080/#/login,默认用户名密码: sentinel/sentinel

默认端口是8080,可以修改端口

服务提供模块

端口:10000、10001

1、引入依赖

2、yml


关于transport.port

1、端口配置会在被监控的微服务对应主机上启动 Http Server
2、该 Http Server 会与 Sentinel 控制台交互
3、比如sentinel控制台添加了一个限流规则,会把规则数据push给这个Http Server接收,Http Server再将这个规则注册到Sentinel中
简单地讲:transport.port指定被监控的微服务应用于sentinel控制台交互的端口

默认端口是8719,如果被占用了,会依次+1扫描,直到找到一个没有被占用的

流控规则

Sentinel采用懒加载,只有调用才能看到监控数据

QPS:每秒钟请求数量

线程:进行中的请求数量

流控模式

直接:限制自己,对自己添加规则

关联:A达到阈值,限制B,限制谁就给谁添加规则

链路:多个请求可以访问同一个目标,针对性限流,对目标添加规则

流控效果

**Warm up(预热):**流量很大,系统从空闲到繁忙切换时间长一些

coldFactor:冷加载因子,默认是3,QPS从QPS/clodFactor开始

比如QPS=9,预热时长为3,QPS从3开始

前3秒,QPS>3会报错

后3秒,QPS>3&&<=9是正常

**排队等待:**间隔性突发流量,匀速排队,阈值类型必须是QPS

不拒绝请求,依次执行,超过等待时间就超时

熔断规则

级联调用,不要线程堆积,快速返回结果

慢调用比例

慢调用: 某次请求的响应时间 > 最大RT

慢调用比例: 慢调用次数 / 总调用次数

进入熔断: 实际请求数目 > 最小请求书 慢调用比例 > 比例阈值

熔断完毕后,如果接下来的第一个请求的响应时间 < RT,则熔断结束,否则再次熔断

异常比例

异常数

@SentinelResource

如果Controller层的方法 或 限流处理类的方法是private,@SentinelResource就不会起作用

局部限流处理

按资源名称限流+自定义限流返回+服务降级处理

自定义全局类

必须都是静态方法

全局限流处理类

全局异常处理类

热点规则

参数必须是基本类型或者String

授权规则

白名单与黑名单

empower/test1,empower/test2会失败

系统规则

对所有的API接口进行保护,总数不超过系统最大QPS,使用入口QPS

规则持久化

1、引入依赖

2、yml


演示了流控规则

其他的规则rule-type:degrade,system,param-flow

规则种类-官方文档

Sentinel整合OpenFeign

目前:

服务提供模块(10000、10001)注册了Nacos、Sentinel

服务使用模块(81)注册了Nacos、OpenFeign

现在服务使用模块可以默认轮询执行提供模块的方法

对于服务提供模块,上面已经有了自己的全局异常类和全局限流类

对于服务使用模块,引入Sentinel,设置异常类

问题:

一开始能够正常轮询调用方法

如果一个正常,一个超时,会总是调用正常的模块(OpenFeign默认超时时间是1秒

两个都挂掉,81会出现超时(因为会缓存到本地)

过30s左右,会出现无法找到服务(因为会定时从nacos拉取服务)

两个都是异常信息,需要对81进行熔断降级

服务使用模块出现异常

一定是Service接口的方法出现问题,Service加fallback参数,自定义异常类实现接口
1、引入依赖

2、yml

3、Service接口

相关推荐
Mr.wangh8 天前
SpringCloudConfig(配置中心)
大数据·elasticsearch·搜索引擎·springcloud·config
阿拉斯攀登13 天前
Spring Cloud Alibaba 生态中 RocketMQ 最佳实践
分布式·微服务·rocketmq·springcloud·cloudalibaba
阿拉斯攀登18 天前
SpringCloudAlibaba之Nacos
微服务·服务发现·springcloud
阿拉斯攀登18 天前
深入微服务配置中心:Nacos注册中心的实操细节
java·微服务·云原生·springcloud
小坏讲微服务20 天前
Spring Boot 4.0 与 MyBatis Plus 整合完整指南
java·spring boot·后端·mybatis·springcloud·mybatis plus·java开发
咖啡不甜不好喝21 天前
sentinel踩坑记录
sentinel·springcloud
她说..21 天前
Spring AOP 操作日志框架(CV可用)
java·jvm·spring·springboot·springcloud
better_liang22 天前
每日Java面试场景题知识点之-分布式事务处理
java·微服务·面试·springcloud·分布式事务
ruleslol1 个月前
Spring Cloud Gateway 断言完全讲解
springcloud
whltaoin1 个月前
【 Java微服务 】Spring Cloud Alibaba :Nacos 注册中心与配置中心全攻略(含服务发现、负载均衡与动态配置)
java·微服务·nacos·springcloud·注册中心·配置中心