spring zuul超时设置

通过zuul路由到某个微服务,请求成功,但是响应却总是报500错误,经过调试发现只有在后台处理超过1s的请求会这样,感觉应该是响应超时的问题,但是无论我将zuul.host.socket-timeout-millis或zuul.host.connect-timeout-millis设置多大,问题依然存在。

server:
  port: 8080
  servlet:
    context-path: /
eureka:
  client:
    service-url:
      defaultZone:   http://localhost:8761/eureka/
  instance:
    status-page-url: http://localhost:8080/swagger-ui.html
zuul:
  ignoredServices: '*'
  ignoredPatterns: /**/admin/**
  host:
    max-per-route-connections: 60000
    socket-timeout-millis: 60000
    connect-timeout-millis: 60000
  routes:
    docdelivery:
      path: /doc-delivery/**
      serviceId: doc-delivery
    configserver:
      path: /config-server/**
      serviceId: config-server

查看官网 http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_zuul_timeouts 后发现,对于通过serviceId路由的服务,设置zuul.host是没用的,你需要设置另外两个参数:ribbon.ReadTimeout 和ribbon.SocketTimeout。
在application.yml中添加如下配置:

ribbon:
  ReadTimeout: 60000  # 单位毫秒数
  SocketTimeout: 60000

问题得到解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容