春天云边汽车hystrix超时不火

时间:2015-12-15 11:57:39

标签: spring spring-cloud hystrix

我有一个简单的Spring云应用程序,侧面车是这里的代码:

@SpringBootApplication
@EnableSidecar

public class SidecarApp {
    public static void main(String[] args) {
        SpringApplication.run(SidecarApp.class, args);
    }
}

侧车通过zuul调用另一个服务,我正在尝试配置hystrix超时而没有成功!这是我的配置:

server:
  port: 9085

spring:
  application:
    name: cue

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 100
hystrix.command.default.execution.isolation.thread.interruptOnTimeout: true
hystrix.command.default.execution.timeout.enabled: true

sidecar:
  port: 8085
  health-uri: http://localhost:8085/health.json

在这些配置中,我希望如果对其他服务的调用将花费超过100毫秒,hystrix将立即返回,但这不会发生(服务hystrix调用需要10秒)

我错误配置了什么吗?

注意: 对其他服务的调用是:http://localhost:9085/cma/myinfo1所以呼叫到达边车,cma是远程服务的Eureka名称,它在服务cma中调用函数myinfo1 ...

1 个答案:

答案 0 :(得分:1)

首先,我认为您的yaml文件不正确,您应该使用标准格式。

您可以禁用hystrix的超时检查:

hystrix:
  command:
    default:
      execution:
        timeout:
          enabled: false

或者将Zuul的Hystrix隔离策略改为THREAD:

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: THREAD
          thread:
            timeoutInMilliseconds: 10000