1

我在 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 以及它如何用于更新配置的信息,但我不明白它如何用于我想要完成的任务。

在我的主类中,我正在使用@EnableAutoConfiguration它添加ArchaiusAutoConfiguration到应用程序中。

谢谢你的帮助!

4

2 回答 2

4

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

hystrix.threadpool.YOUR_GROUP_KEY.coreSize=10

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

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

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

于 2015-10-14T23:45:19.113 回答
0

如果您想以自定义时间间隔阅读更新的配置,而不是查看此处提到的解决方案

于 2016-03-03T17:38:03.127 回答