CSE/ServiceComb 和 Spring Boot集成的时候报告Hystrix重复错误

错误日志:

  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包依赖也是可以的。 

猜你喜欢

转载自blog.csdn.net/looook/article/details/87884909