用feign调用微服务接口时,故意在微服务的接口睡眠一段时间。结果发现,只要睡眠时间超过1s,调用方就会报超时
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_65]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_65]
......
后来查阅文档发现,feign的默认请求时间为1s,超过1s feign就报超时。这个可以通过配置修改掉
feign.hystrix.enabled=true
#feign调用默认是1000毫秒=1秒 这里改为5分钟
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=300000
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=300000
hystrix.command.default.circuitBreaker.forceClosed=true
#hystrix.command.default.execution.timeout.enabled=false
#请求处理的超时时间 add by six-vision
ribbon.ReadTimeout=300000
ribbon.SocketTimeout=300000
#请求连接的超时时间 add by six-vision
ribbon.ConnectTimeout: 30000