API 网关超时配置
zuul的超时的,配置很简单:
第一组:ribbon.ReadTimeout, ribbon.SocketTimeout
第二组:zuul.host.connect-timeout-millis, zuul.host.socket-timeout-millis
第三组:hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
区别在于,如果路由方式是serviceId的方式,那么ribbon的生效,如果是url的方式,则zuul.host开头的生效。(此处重要!使用serviceId路由和url路由是不一样的超时策略)
如果你在zuul配置了熔断fallback的话,熔断超时也要配置,不然如果你配置的ribbon超时时间大于熔断的超时,那么会先走熔断,相当于你配的ribbon超时就不生效了。
熔断超时是这样的: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
总结起来就是三种超时配置:
网关的超时层级
zuul
zuul:
max:
host:
connections: 500
host:
socket-timeout-millis: 60000
connect-timeout-millis: 60000
ribbon
ribbon:
ReadTimeout: 10000
ConnectTimeout: 10000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 1
eureka:
enabled: true
hystrix
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 60000
网友评论