问题描述

spring cloub项目通过访问服务的http接口偶尔会出现“504 GATEWAY_TIMEOUT "Response took longer than timeout:PTxxx”的异常。

问题处理

通过测试发现是服务的接口还未返回结果时,gateway就以几个返回了异常,判断出是gateway的HTTP接口的responseTimeout配置原因。
原有配置:

spring:
  cloud:
    gateway:
      httpclient:
       connect-timeout: 1000
       response-timeout: 5s

修改后:

spring:
  cloud:
    gateway:
      httpclient:
       connect-timeout: 1000
       response-timeout: 10s

gateway超时配置

全局http超时:

connect-timeout必须以毫秒为单位指定。
response-timeout必须指定为java.time.Duration

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 10s

单个路由配置

这个配置未测试

   - id: per_route_timeouts
        uri: https://example.org
        predicates:
          - name: Path
            args:
              pattern: /delay/{timeout}
        metadata:
          response-timeout: 200
          connect-timeout: 200
Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐