使用Dropwizard,Hystrix和Archaius使用动态属性

时间:2014-10-22 17:22:32

标签: dropwizard hystrix

我正在尝试使用Dropwizard与Hystrix和Archaius使用DropWizard中的yml文件。我需要在运行时动态更改Archaius属性文件值。我怎么做 ?我查看了以下链接,并通过扩展Configuration类并将其传递到Application子类,从YML属性文件中获取键值数据: http://christopher-batey.blogspot.com/2014/08/using-hystrix-with-dropwizard.html

我想使用Archaius在运行时动态配置这些属性值。我怎样才能做到这一点 ? 使用具有Breakerbox的Tenacity对我所需要的东西来说太过分了。 上面的文章引用了这个:"然后扩展你安装的配置以包括动态配置源,如ZooKeeper。" -how如果不使用Zookeeper就可以做到这一点,只要我可以更改属性文件让Hystrix接受改变。

TIA, 维杰

1 个答案:

答案 0 :(得分:2)

Dropwizard将在启动时读取YAML文件一次。在上面给出的示例中,YAML文件中的运行时更改将不起作用。

Getting Started中描述了可能适合您的最简单的事情

完全通过YAML跳过配置,删除ConfigurationManager.install()部分,将运行时配置放在单独的Java属性文件中,并指定archaius.configurationSource.additionalUrls系统参数。 dropwizard的命令行如下所示:

java -Darchaius.configurationSource.additionalUrls=file:///apps/myapp/application.properties -jar mydropwizard.jar server config.yml

如文档中所述,URL可以在Web上,也可以在本地文件中。

在更复杂的解决方案中,您可以在YAML文件中指定URL,并使用从YAML文件接收的URL创建DynamicURLConfiguration。

祝你好运, 亚历山大。