2016-03-15 9 views
0

Я изучаю Spring-Cloud-Netflix, и я узнал, что Archaius использовался для конфигурации времени исполнения Hystrix. (https://ahus1.github.io/hystrix-examples/manual.html#archaius)Конфигурация времени работы Hystrix с Spring-Cloud-Config вместо Archaius?

Я также обнаружил, что Archaius был мягкой-зависимость, так как V1.5.0 (https://github.com/Netflix/Hystrix/pull/1083): «Archaius теперь мягкая зависимость Hystrix, так что вы можете поставить свой собственный механизм настройки»

Мой вопрос: легко ли настроить Hystrix с Spring-Cloud-Config во время выполнения? Я сделал некоторые исследования, но не нашел примеров.

Оцените любые идеи.

ответ

3

После нескольких дней исследований мне удалось динамически настроить свойства Hystrix с помощью Spring Cloud Config. Я также сделал небольшую демонстрацию по настройке свойства экземпляра Hystrix во время выполнения.

Во-первых, each Hystrix property has four levels of precendence:

  1. Global по умолчанию
  2. Динамическая глобальная по умолчанию
  3. Instance по умолчанию
  4. Динамическая свойство экземпляра.

Где 1-й и 3-й уровни поддерживают только статические конфигурации. Поскольку 2-й уровень (динамический глобальный по умолчанию) не обсуждался в Hystrix Wiki, я выбираю Динамическое свойство экземпляра для конфигурации времени исполнения. Тем не менее, я считаю, что мой метод должен применяться к Dynamic Global Default.

Практика проста. Сначала натягивает значение конфигурации из Spring Cloud Config с помощью @value аннотации:

@Value("{timeoutInMilliseconds:1500}") 
String timeout; 

Затем использовать строку timeout в вашем экземпляре Hystrix:

Configurationmanager.getConfigInstance().setProperty("hystrix.command.HystrixHelloWorld.execution.isolation.thread.timeoutInMilliseconds", timeout); 

Если Configurationmanager.getConfigInstance() является Archaius method, возвращает экземпляр конфигурации , .setProperty() устанавливает имущество

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