sentinel 添加流控规则不显示的问题
来源:8-5 流控规则

慕的地6982369
2020-01-04
控制台添加流控规则
添加后的流控规则没有显示,也没有生效。但是dashboard后台日志显示
2020-01-04 01:27:23.943 INFO 19076 — [nio-8080-exec-7] c.a.c.s.d.client.SentinelApiClient : setRules: success
已经成功了。
spring cloud alibaba:2.1.1.RELEASE
sentinel:1.7.0
辛苦大目老师,帮忙指导一下。
4回答
-
不好意思,周末发热了,咳得肺要出来了,身体不太舒服……刚刚抽了点时间给你看了下。
首先,你的问题是能够复现的,你的分析也没有任何问题。
我按照你的思路都快给官方提issue了。还好在提issue之前,我分析了下你的POM.xml。
你的pom.xml手动添加了FastJSON
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.8</version> </dependency>
这个版本太低了,直觉告诉我,这块不太对劲。于是我把这个依赖干掉了,发现恢复正常了。
所以本质上,这是一个低版本FastJSON解析字符串失败的问题。
知道答案之后,我顺便到Sentinel的GitHub搜了一把,发现在 https://github.com/alibaba/Sentinel/wiki/FAQ#q-sentinel-%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%B2%A1%E6%9C%89%E6%98%BE%E7%A4%BA%E6%88%91%E7%9A%84%E5%BA%94%E7%94%A8%E6%88%96%E8%80%85%E6%B2%A1%E6%9C%89%E7%9B%91%E6%8E%A7%E5%B1%95%E7%A4%BA%E5%A6%82%E4%BD%95%E6%8E%92%E6%9F%A5
官方文档里面说了:
Q: 控制台正确的规则推送后看不到?
客户端成功接入控制台后,控制台配置规则准确无误,但是客户端收不到规则或者报错?比如配置的资源名正确但 sentinel-record.log 日志里面却报 resourceName 为空的错误?
A: 排查客户端是否使用了低版本的 fastjson,低版本的 fastjson 可能会有此问题,建议使用和 Sentinel 相关组件一致版本的 fastjson。
相信你不是第一个,也不是最后一个。
最后祝您学习愉快。
另外,建议以后有问题最好在原贴跟帖哦,我都会看到的。新开帖子不利于我,也不利于别的学员追踪问题。
032020-01-06 -
慕的地6982369
提问者
2020-01-05
我跟了一下源码,发现在ModifyRulesCommandHandler.java里面如截图的地方,Json对象转换成数组对象的时候竟然给我resource这个属性变成了null。导致了我在sentinel中无法注册流控规则。麻烦老师帮我看看这块是怎么回事呗,谢谢。
10 -
大目
2020-01-05
您好,将代码托管到github或者gitee,并附上复现步骤,我来看看哈。
012020-01-05 -
大目
2020-01-04
提示成功,但是无效?我也不知道哈。没有遇到过这种问题。
建议看下你的Sentinel Dashboard是否有错误日志哈。
012020-01-05
相似问题