Как определить конфигурацию команды Hystrix - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу предварительно определить глобальную конфигурацию для всех команд hystrix в моем проекте.Т.е. я хочу помечать методы только чем-то вроде этого:

@HystrixCommand(commandKey = "MFO_SERVICE", fallbackMethod = "fallback")

не так

@HystrixCommand(
            commandKey = "MFO_SERVICE",
            commandProperties = {
                    @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "1000"),
                    @HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds", value = "60000"),
                    @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "10"),
                    @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "50"),
                    @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "60000")},
            fallbackMethod = "fallback")

И все параметры должны храниться в файле свойств и должны иметь возможность изменять безперекомпиляции.Поэтому я пытаюсь использовать пружинный компонент, который берет параметр из среды и вставляет его в Hystrix (Archaius) ConfigurationManager.

@Component
public class HystrixConfig {      

  @Value("${execution.isolation.thread.timeoutInMilliseconds}")
  private String timeoutInMilliseconds;


  @PostConstruct
  private void init() {
      ConfigurationManager.getConfigInstance().setProperty("hystrix.command.MFO_SERVICE.execution.isolation.thread.timeoutInMilliseconds", timeoutInMilliseconds);
  }
}

Но это не дает никакого эффекта.Кажется, что в момент Spring @PostConstruct команда hystrix не существует.И, наконец, я получил HystrixCommand с конфигурацией по умолчанию.

Есть ли способ ее решить?

1 Ответ

0 голосов
/ 17 декабря 2018

По умолчанию Archaius ищет свойства конфигурации в «config.properties» в пути к классам приложения.Поэтому определите все свойства в файле config.properties с помощью своего командного ключа и используйте этот ключ commant в @ HystrixCommand.

для получения дополнительной информации https://medium.com/@aksudupa11/getting-started-with-hystrix-e454158f2867

...