spring cloud gateway单独设置某几个接口超时时间

这篇具有很好参考价值的文章主要介绍了spring cloud gateway单独设置某几个接口超时时间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在使用Spring cloud Gateway (scg)时,通过service name 全局匹配,路由到相应的服务。但是请求/响应超时怎么设置呢?

Spring cloud Gateway 超时设置

Spring cloud Gateway 可以为所有路由配置 Http 超时(响应和连接),并为每个特定路由覆盖。

http全局超时设置

  • connect-timeout 连接超时必须以毫秒为单位指定。
  • response-timeout 响应超时必须指定为 java.time.Duration
spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 200
        response-timeout: 10s

然而,有些比较特殊接口,200ms是没法满足需求的,比如一个大文件上传或下载,都会超过200ms,那怎么配置才能对这些特殊接口做单独设置呢?

每个路由超时设置

配置每个路由超时:

  • 连接超时必须以毫秒为单位指定。
  • 必须以毫秒为单位指定响应超时。

每个路由http请求超时设置

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

以上,来自官方docs.spring.io/spring-cloud-gateway,然而,人有祸兮旦福,照抄有问题····

问题/需求描述

现在有2个服务,A-service、B-service,这2个服务的普通接口的响应超时时间都是300ms内,但是A-service 中有文件上传、下载的接口,文件稍大,gatway 就会报超时(504),现在需要把这部分接口单独设置超时时间(别说把文件上传的服务拆出来单独一个服务,虽然问题可以解决,但是暂时没这个考虑),上代码:

 routes:
        - id: files_routes
          uri: http://localhost:8080
          predicates:
            - Path=/A-service/community/upload/**
            - Host=xx.xxxx.cn
          metadata:
            response-timeout: 300000
            connect-timeout: 300000
        - id: blockchain
          uri: http://localhost:8080
          predicates:
            - Path=/A-service/**
            - Host=xx.xxxxx.cn
          metadata:
            response-timeout: 2000
            connect-timeout: 3000
          filters:
            - RewritePath=/A-service, /
        - id: authorization
          uri: http://localhost:8081
          predicates:
            - Path=/B-service/**
            - Host=xx.xxxx.cn
          metadata:
            response-timeout: 2000
            connect-timeout: 3000
          filters:
            - RewritePath=/B-service, /

OK,访问一下,第一次可以,再来一下,404~! 多试几次效果一样,那么就怀疑这个配置的命中顺序不是固定的,而是随机的,那得解决这个问题,找了一下官方资料,发现有个属性 order 可以指定优先级(顺序),把order加上就好了。

总结

cgi 的配置文件是无序的,需要手动通过order指定优先级。文章来源地址https://www.toymoban.com/news/detail-795461.html

到了这里,关于spring cloud gateway单独设置某几个接口超时时间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Cloud 微服务中 gateway 网关如何设置健康检测端点

    主要是为了让 k8s 识别到网关项目已经就绪,但是又不想在里面通过 Controller 实现。因为在 Controller 中这样做并不是最佳实践,因为 Gateway 的设计初衷是专注于路由和过滤,而不是业务逻辑的处理。 在 Gateway 中配置健康检查端点可以通过以下方式进行(可根据实际需求进行扩

    2024年01月17日
    浏览(49)
  • Spring Cloud Gateway集成Swagger实现微服务接口文档统一管理及登录访问

    本文将介绍如何在 Spring Cloud 微服务中使用 Swagger 网关来统一管理所有微服务的接口文档,并通过 Spring Security 实现登录后才能访问 Swagger 文档,以确保接口数据的安全访问。 在开始之前,需要假设你已经完成了 Spring Cloud Gateway 的相关配置,并且已经了解了基本的网关配置知

    2024年02月05日
    浏览(43)
  • Spring Cloud Gateway 网关整合 Knife4j 4.3 实现微服务接口文档聚合

    🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正! youlai-mall 开源微服务商城新版本基于 Spring Boot 3 和 Java 17,同时采用 Knife4j 4.3。与以前版本不同的是

    2024年02月05日
    浏览(50)
  • Spring Cloud Gateway + Knife4j 4.3 实现微服务网关聚合接口文档

    🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正! youlai-mall 开源微服务商城新版本基于 Spring Boot 3 和 Java 17,同时采用 Knife4j 4.3。与以前版本不同的是

    2024年02月08日
    浏览(41)
  • spring cloud gateway中出现503 spring cloud gateway中出现503

    当搭建网关模块的时候出现503的错误的最大的可能就是没有设置负载均衡的依赖包  原先搭建的时候采用的是下面的方式进行设置的 上面的这种方式可以直接进行注册和发现,但是要求必须导入下面的依赖 希望简单的随笔能够帮助你!

    2024年02月11日
    浏览(52)
  • 【Spring Cloud 八】Spring Cloud Gateway网关

    【Spring Cloud一】微服务基本知识 【Spring Cloud 三】Eureka服务注册与服务发现 【Spring Cloud 四】Ribbon负载均衡 【Spring Cloud 五】OpenFeign服务调用 【Spring Cloud 六】Hystrix熔断 【Spring Cloud 七】Sleuth+Zipkin 链路追踪 在项目中是使用了Gateway做统一的请求的入口,以及统一的跨域处理以及

    2024年02月12日
    浏览(47)
  • Spring Cloud Gateway

    目录 一、Spring Cloud Gateway 1、网关介绍 2、GateWay 3、GateWay项目搭建 4、GateWay配置路由的两种方式 4.1、YML配置 4.2、配置类 5、GateWay实现负载均衡 5.1、自动负载均衡 5.2、手动负载均衡 6、GateWay断言Predicate 7、GateWay的Filter         在 微服务架构 中,一个 系统会被拆分为很多

    2024年02月10日
    浏览(49)
  • 浅谈Spring Cloud Gateway

    网关:用户和微服务的桥梁 网关的核心是一组过滤器,按照先后顺序执行过滤操作。 Spring Cloud Gateway是基于webFlux框架实现,而webFlux框架底层则使用了高性能的Reactor模式通信框架的Netty Spring Cloud Gateway是Spring Cloud生态系统中的一个API网关,它基于Spring Framework 5,Spring Boot 2和P

    2024年02月11日
    浏览(45)
  • 聊聊Spring Cloud Gateway

    网关概述 整体来看,网关有点类似于门面,所有的外部请求都会先经过网关这一层。 网关不仅只是做一个请求的转发及服务的整合,有了网关这个统一的入口之后,它还能提供以下功能。 针对所有请求进行统一鉴权、限流、熔断、日志。 协议转化。针对后端多种不同的协议

    2024年02月07日
    浏览(44)
  • spring cloud 之 gateway

    在微服务架构体系中,一个系统会被拆分为很多个微服务,那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别调用,当然这样是不现实的 Kong    基于Nginx+Lua开发,性能高,稳定,有多个可用的插件

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包