您的位置:首页 > 娱乐 > 八卦 > 襄樊和襄阳是一个地方吗_长沙软件开发_seo搜索引擎营销工具_免费seo在线工具

襄樊和襄阳是一个地方吗_长沙软件开发_seo搜索引擎营销工具_免费seo在线工具

2025/6/28 10:32:33 来源:https://blog.csdn.net/qq_65186476/article/details/144789185  浏览:    关键词:襄樊和襄阳是一个地方吗_长沙软件开发_seo搜索引擎营销工具_免费seo在线工具
襄樊和襄阳是一个地方吗_长沙软件开发_seo搜索引擎营销工具_免费seo在线工具

目录

控制台启动

服务提供模块

流控规则

流控模式

流控效果

熔断规则

慢调用比例 

异常比例

异常数

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com