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接口

相关推荐
wfsm2 小时前
nacos和openfeign
springcloud
无心水5 小时前
【分布式利器:腾讯TSF】11、腾讯TSF微服务框架深度对比:全面解析TSF vs Spring Cloud vs Dubbo vs Service Mesh
分布式·spring cloud·微服务·dubbo·springcloud·service mesh·分布式利器
sunnyday04261 天前
Spring Cloud Alibaba Sentinel 流量控制与熔断降级实战指南
spring boot·sentinel·springcloud
悟空码字4 天前
Spring Cloud 集成 Nacos,全面的配置中心与服务发现解决方案
java·nacos·springcloud·编程技术·后端开发
坐不住的爱码11 天前
Bootstrap和application.yml
springcloud
悟空码字11 天前
Spring Cloud Gateway实战,从零搭建API网关,构建高性能微服务统一入口
java·gateway·springcloud·编程技术·后端开发
没有bug.的程序员13 天前
Service Mesh 与 Spring Cloud 共存方案:双体系治理、平滑迁移与风险控制实战指南
云原生·springcloud·流量治理·混合架构·servicemesh·微服务迁移·技术演进
奥升新能源平台15 天前
奥升充电平台安全稳定体系构建
运维·安全·开源·springcloud
qq_1659016915 天前
spring-cloud读取Nacos上的配置
java·spring cloud·springcloud
无心水15 天前
【分布式利器:腾讯TSF】2、腾讯微服务框架TSF实战指南:Spring Boot零侵入接入与容器化部署全流程
java·spring boot·分布式·微服务·springcloud·分布式利器·腾讯tsf