今天原本打算将soul网关的其他几个功能插件(Hystrix、RateLimiter、Sentinel)验证一下,看看他们是怎么起作用的。结果当我测试Hystrix插件的时候,同步数据的时候出现了一个问题,下面将大致讲下我自己发现并解决问题的过程。
问题描述与处理
我在soul-admin上面添加了Hystrix插件,配置情况如下:
- 打开
Hystrix插件开关
Hystrix开关 - 增加
Hystrix插件配置
Hystrix配置
Hystrix配置-规则 - 再通过
postman模拟请求,程序却一直没有进行熔断 - 怀疑是我的配置并没有下发到网关
bootstrap,于是尝试着手动将配置同步
同步Hystrix配置 -
admin前端返回提示同步成功,但我看后台bootstrap日志时发现如下错误
NPE - 经过
debug知晓,配置同步过程中如果存在参数为空的接口,那么就会引发NPE。 - 看起来这是一个
BUG,于是我便到github上面提交了一个issue - 后续就是在
soul官方的维护人员帮助下,以及查阅官方文档的源码贡献者指南,成功修复了这个BUG,提交了自己的第一个Pull Request,并已Merge。 - 提交的issue
https://github.com/dromara/soul/issues/994
总结
- 关于修复
souldubbo插件中的一些BUG时,需要注意可能要修改两个地方,Apache Dubbo与Alibaba Dubbo。我这次的问题最初的时候我只在Alibaba Dubbo进行了修改,后面是soul官方人员dengliming的提示下,发现我的问题在Apache Dubbo中也存在。所以commit了两次才最终完成修改。




