错误日志:
java.lang.IllegalStateException: Another strategy was already registered.
at com.netflix.hystrix.strategy.HystrixPlugins.registerCommandExecutionHook
这个日志是由于spring boot也注册了hystrix,bizkeeper也会注册,hystrix不允许同时注册,但是又没接口能够判断是否已经注册(get方法有bug),所以会打印一个警告。 不影响功能。
如果没有bizkeeper的功能,可以在handler配置里面把他移除。 这样cse就不会尝试注册hystrix了,就没有这个异常了。
默认是这个,如果你们没定制的话:
# 处理链配置
handler:
chain:
Provider:
default: qps-flowcontrol-provider,bizkeeper-provider
Consumer:
default: qps-flowcontrol-consumer,loadbalance,fault-injection-consumer,bizkeeper-consumer
修改为:
# 处理链配置
handler:
chain:
Provider:
default: qps-flowcontrol-provider
Consumer:
default: qps-flowcontrol-consumer,loadbalance,fault-injection-consumer
当然也可以打个断点调试下registerCommandExecutionHook方法,看看spring boot 的哪个模块调用了这个方法。 如果不使用spring boot的功能不使用,去掉对应的jar包依赖也是可以的。
本文解析了SpringBoot中Hystrix重复注册导致的IllegalStateException异常,详细介绍了错误原因及解决方案,包括调整配置文件避免Bizkeeper重复注册,以及通过断点调试定位具体模块。
2539

被折叠的 条评论
为什么被折叠?



