application.yml没有被hystrix接收

时间:2017-01-14 10:53:26

标签: spring-cloud hystrix netflix spring-cloud-netflix

我想将方法​​注释中的以下配置移动到属性文件

@HystrixCommand(commandProperties = {
            @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds", value = "10000"),
            @HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds", value = "10000"),
            @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "5"),
            @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "100")   
    },
            fallbackMethod = "fallbackCall")

我将application.yml文件放在src / main / resources

hystrix:
  command.:
    getResult:
      circuitBreaker:
        sleepWindowInMilliseconds: 10000
        errorThresholdPercentage: 100
        requestVolumeThreshold: 5
      metrics:
        rollingStats:
          timeInMilliseconds: 10000

我没有使用弹簧靴。这个文件没有被Hystrix接收。

是否需要进行任何配置才能将application.yml传递给hystrix配置?

2 个答案:

答案 0 :(得分:1)

创建为config.properties并且工作正常。 默认情况下,这是由archaius

查找的
hystrix.command.getResult.metrics.rollingStats.timeInMilliseconds=10000
hystrix.command.getResult.circuitBreaker.requestVolumeThreshold=5
hystrix.command.getResult.circuitBreaker.errorThresholdPercentage=100
hystrix.command.getResult.circuitBreaker.sleepWindowInMilliseconds=10000

答案 1 :(得分:0)

我遇到了类似的问题,我们在项目中使用Spring Boot和Spring Cloud依赖项。添加以下依赖性已解决了该问题,

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
    <version>${version-as-per-your-project}</version>
</dependency>

我们最初以低于依赖性的方式进行测试,这是导致问题的原因,

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>