我正在学习Spring-Cloud-Netflix并且我了解到Archaius用于Hystrix运行时配置。 (https://ahus1.github.io/hystrix-examples/manual.html#archaius)
我还发现Archaius是一个软依赖,因为V1.5.0(https://github.com/Netflix/Hystrix/pull/1083):" Archaius现在是Hystrix的软依赖,所以你可以提供自己的配置机制。&# 34;
我的问题是,在运行时使用Spring-Cloud-Config配置Hystrix是否容易?我做了一些研究,但没有找到任何例子。
欣赏任何想法。
答案 0 :(得分:6)
几天后'研究,我设法用Spring Cloud Config动态配置Hystrix属性。我还做了一个关于在运行时配置Hystrix实例属性的小型演示。
首先,each Hystrix property has four levels of precendence:
第1级和第3级仅支持静态配置。由于Hystrix Wiki中没有讨论第二级(动态全局默认),因此我选择动态实例属性进行运行时配置。但是,我相信我的方法也应该适用于动态全局默认。
这种做法很简单。首先使用@Value注释从Spring Cloud Config中提取配置值:
@Value("{timeoutInMilliseconds:1500}")
String timeout;
然后在Hystrix实例中使用字符串timeout
:
ConfigurationManager.getConfigInstance().setProperty("hystrix.command.HystrixHelloWorld.execution.isolation.thread.timeoutInMilliseconds", timeout);
ConfigurationManager.getConfigInstance()
是Archaius method的位置,返回配置实例。 .setProperty()
设置属性