我有一个简单的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 ...
答案 0 :(得分:1)
首先,我认为您的yaml文件不正确,您应该使用标准格式。
您可以禁用hystrix的超时检查:
hystrix:
command:
default:
execution:
timeout:
enabled: false
或者将Zuul的Hystrix隔离策略改为THREAD:
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 10000