1

我有一个带侧车的简单弹簧云应用程序,代码如下:

@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.. .

4

1 回答 1

1

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

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

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

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

hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: THREAD
          thread:
            timeoutInMilliseconds: 10000
于 2016-09-27T10:17:48.663 回答