0

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

我想使用 Archaius 在运行时动态配置这些属性值。我怎样才能做到这一点 ?将 Tenacity 与 Breakerbox 一起使用对于我需要的东西来说太过分了。上面的文章提到了这一点:“然后扩展您安装的配置以包含动态配置源,例如 ZooKeeper。”-如何在不使用 Zookeeper 的情况下做到这一点,只要我可以更改一个属性文件并让 Hystrix 拿起改变。

TIA,维杰

4

1 回答 1

2

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

入门中描述了对您有用的最简单的方法:

完全跳过 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。

最好的问候,亚历山大。

于 2014-11-15T21:13:59.057 回答