2014-10-22 4 views
0

Я пытаюсь использовать Dropwizard с Hystrix и Archaius, используя yml-файл из DropWizard. Мне нужно динамически изменять значения файла свойств Archaius во время выполнения. Как мне это сделать ? Я посмотрел на следующие ссылки и я в состоянии получить ключевые данные о стоимости из файлов свойств YML путем расширения класса конфигурации и передачи его в Application подклассу: http://christopher-batey.blogspot.com/2014/08/using-hystrix-with-dropwizard.htmlИспользование динамических свойств с помощью Dropwizard, Hystrix и Archaius

Я хочу использовать Archaius для настройки этих значений свойств динамически во время выполнения. Как я могу это сделать ? Использование прочности с выключателем является излишним для того, что мне нужно. В приведенной выше статье говорится следующее: «Затем более поздняя версия включает конфигурацию, которую вы устанавливаете, чтобы включить источник динамической конфигурации, такой как ZooKeeper». - как это сделать без использования Zookeeper, пока я могу просто изменить файл свойств и получить Hystrix изменение.

ТИА, Виджай

+0

Добавлен еще один способ динамического изменения конфигурации [здесь] (http://stackoverflow.com/questions/35712393/netflix-archaius-dynamic-configuration) – yousafsajjad

ответ

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 может быть в сети, или локальный файл.

В более сложном решении вы можете указать URL-адрес в вашем файле YAML и создать DynamicURLConfiguration с URL-адресом, который вы получаете из файла YAML.

С уважением, Alexander.

Смежные вопросы