sentinel-dashborard下发流控规则未生效排查解决

2024-05-11 18:20

本文主要是介绍sentinel-dashborard下发流控规则未生效排查解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Sentinel简介

Sentinel是阿里巴巴开源的一个流量控制组件,它以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。Sentinel的核心思想是:通过动态设置的规则,对进入系统的流量进行控制,从而保证系统的稳定性和高可用性。

Sentinel的主要特性包括:

  1. 流量控制:Sentinel可以根据不同的调用来源、调用模式等,对流量进行控制,比如可以设置某个接口的QPS(每秒查询数)或者线程数阈值,当超过这个阈值时,就会进行流量控制,避免系统过载。
  2. 熔断降级:当系统负载过高或者出现异常时,Sentinel会自动触发熔断机制,快速失败,避免雪崩效应。同时,Sentinel还支持降级策略,可以根据实际情况对某些非核心服务进行降级处理,保证核心服务的稳定性。
  3. 系统负载保护:Sentinel会实时收集系统的负载情况,当系统负载达到一定的阈值时,会自动进行保护,拒绝多余的请求,防止系统崩溃。
  4. 实时监控和控制台:Sentinel提供了实时的监控和控制台,可以实时查看系统的流量、熔断情况、系统负载等信息,并可以动态修改规则,方便运维人员进行监控和控制。
  5. 丰富的适配方式:Sentinel支持多种主流的框架和协议,比如Dubbo、Spring Cloud、gRPC等,可以很方便地集成到现有的系统中。
  6. 动态规则配置:Sentinel的规则可以通过多种方式进行配置,比如文件、数据库、配置中心等,可以方便地实现规则的动态更新。

Dashboard 工作原理

简单画了个图来帮助理解工作原理,图示如下:

简单来说就是,客户端上报资源接口,然后在dashboard上可以动态设置流控规则,同时客户端监听配置中心,可以捕获自己限流规则的变化情况,然后更新到本地内存中实时生效。

调试方法

如果发现在dashboard下发的规则未生效,那么我们可以在客户端应用依赖的 AbstractDataSource 类的 loadConfig 方法的 return 处打上断点,然后在dashboard上更改某一条规则,这个地方就能监听到变化

如果序列化没问题,在断点处能看到解析后到FlowRule对象的值和配置中心里面的值是一致的:

如果解析后规则的 resource=null,但conf这个字段里面有值,基本就可以百分百锁定是客户端fastjson版本过低导致。

修复方法

升级客户端fastjson版本,在我用的1.8.4的版本中,我客户端fastjson版本为1.2.83,整体工作正常,其他的版本可对应配置一下;

        <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency>

参考:sentinel 添加流控规则不显示的问题 · Issue #1354 · alibaba/Sentinel · GitHub

文中如有描述不清楚的地方,有任疑问或不清楚的地方,可关注公众号我是攻城师(woshigcs),加我 v 咨询讨论

这篇关于sentinel-dashborard下发流控规则未生效排查解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/980299

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u

Python之变量命名规则详解

《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

深入浅出Java中的Happens-Before核心规则

《深入浅出Java中的Happens-Before核心规则》本文解析Java内存模型中的Happens-Before原则,解释其定义、核心规则及实际应用,帮助理解多线程可见性与有序性问题,掌握并发编程... 目录前言一、Happens-Before是什么?为什么需要它?1.1 从一个问题说起1.2 Haht