解决SpringCloudGateway用户请求超时导致日志未记录情况

1. 问题现象:

本项目是SpringCloudGateway框架项目,测试对接时发现一种情况:调用方请求了我项目的接口,但是经过3秒之后调用方未收到任何请求,我项目也未记录到任何日志。

2. 问题排查:

分析发现,我方的接口请求了其他接口并且超时,超时时长为10秒;而调用方请求时长为3秒;所以当我方接口请求未结束时,调用方就已经请求超时了。

而根据SpringCloudGateway的底层逻辑,调用方请求超时,请求链路会收到一个cancel指令,会导致后续的Filter的then()不会往后执行,而我的日志记录操作正是放在Filter的then()中;

3. 解决方案:

  1. 调用方接口超时时长应大于我方超时时长
  2. 日志记录等不论调用是否取消的逻辑都应该放在doFinally中

    doFinally:无论是否成功或者取消都会运行
    doOnCancel:请求取消则会执行
相关推荐
三无少女指南10 分钟前
从这里开始:Java 后端与 AI 工程的三条阅读路线
java·学习路线·ai工程
香蕉大香蕉(06敬畏市场)26 分钟前
MySQL 单点详解(07)
java·数据库·mysql·ai·博客·八股
nice_lcj5201 小时前
深入理解 Java 反射:从 Class 对象到方法调用(含性能实测 + 迷你 IOC 实战 + 面试考点)
java·开发语言·后端·面试
骑着蜗牛撵大象3271 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp
tryxr1 小时前
JVM 垃圾回收机制
java·jvm·gc·垃圾回收
揣一尾游鱼yu2 小时前
Spring上(IOC)笔记
java·笔记·spring·ioc
荣码3 小时前
长上下文与大文档处理:200页PDF怎么喂给AI,我踩了4个坑
java·python
极限挑战哥3 小时前
共享电单车联营平台分账架构实践:二清合规与自动分账零人工方案
java·大数据·人工智能·微信小程序·架构·微信公众平台
皮皮林5513 小时前
比 VMware 更快,更轻的虚拟机,横空出世!
java
Thomas.Sir4 小时前
第13课:MyBatis-Plus整合SpringBoot4.x,分页、条件查询、逻辑删除实战
java·spring boot