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