在运行时更新Hystrix配置

时间:2015-10-07 09:19:55

标签: java spring hystrix

我在Spring Cloud应用程序中使用Hystrix,其命令定义为

@HystrixCommand(groupKey = "GroupKey", commandKey = "dummy",
        threadPoolProperties = {
                @HystrixProperty(name = "coreSize", value = "10")
        })
public Observable<String> dummy() {
    return new ObservableResult<String>() {
        @Override
        public String invoke() {
            return "OK";
        }
    };
}

我想在运行时更新coreSize(线程池的大小)属性。怎么办?可能吗?或者我应该寻找不同的解决方案?

我一直在阅读有关Archaius及其如何用于更新配置的内容,但我不明白它如何用于我想要完成的任务。

在我的主要课程中,我正在使用@EnableAutoConfigurationArchaiusAutoConfiguration添加到应用程序中。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

为Archaius创建一个config.properties文件,其中包含

hystrix.threadpool.YOUR_GROUP_KEY.coreSize=10

确保该文件位于应用程序的类路径中,或者在JVM属性中显式配置该位置,例如:

-Darchaius.configurationSource.additionalUrls=file:///opt/myapp/config.properties

Archaius通常每分钟读取一次文件,因此无需重启应用程序即可应用设置。

答案 1 :(得分:0)

如果您要以自定义时间间隔阅读更新的配置,请查看提及的解决方案here