我在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
添加到应用程序中。
感谢您的帮助!
答案 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