Spring Cloud 版本升级遇坑记:OpenFeignClient与Gateway的恩怨情仇

Spring Cloud 版本升级遇坑记:OpenFeignClient与Gateway的恩怨情仇

近日,在对项目中的 Spring Boot、Spring Cloud 以及 Spring Cloud Alibaba 进行版本升级时,遭遇了一个令人头疼的问题:Spring Cloud Gateway 在运行时一直卡住,无法正常启动。经过一番折腾,终于找到了问题的症结所在,下面就来分享一下这个问题的解决过程。

升级详情

本次升级涉及以下组件:

Spring Boot 升级到 2.7.17

Spring Cloud 升级到 2021.0.8

Spring Cloud Alibaba 升级到 2021.0.4.0
遭遇问题

在升级完成后,发现 Spring Cloud Gateway 无法正常启动,一直卡在启动过程中。

探究原因

在排查过程中,发现,只要使用 @Autowired 注入了 OpenFeignClient,Gateway 就无法正常启动。

解决方法与注意事项

经过一系列尝试,总结出了以下几个注意事项:

解决方法与注意事项:

1、使用@Lazy进行懒加载 :当注入OpenFeignClient时,务必使用@Lazy注解,确保在Gateway启动时不会过早实例化,避免启动卡住的问题。
2、FeignClient的异步调用 :确保FeignClient采用异步调用方式,利用Future模式,避免同步调用导致的线程异常。
3、开启OpenFeign功能 :使用@EnableFeignClients注解,确保OpenFeign功能在项目中的正常运行。
4、开启异步执行功能 :使用@EnableAsync注解,确保异步调用的正常执行,否则@Async注解将无法生效。
解决实例

相关推荐
hrhcode8 小时前
【Netty】五.ByteBuf内存管理深度剖析
java·后端·spring·springboot·netty
前路不黑暗@10 小时前
Java项目:Java脚手架项目的通用组件的封装(六)
java·开发语言·spring
无心水12 小时前
5、微服务快速启航:基于Pig与BladeX构建高可用分布式系统实战
服务器·分布式·后端·spring·微服务·云原生·架构
求知摆渡13 小时前
Spring AI 多模型对话 Demo 实战:OpenAI/Ollama 一套接口、Redis 会话记忆、SSE 流式输出、AOP 日志打点
java·spring
身如柳絮随风扬14 小时前
Ribbon&LoadBalancer负载均衡原理
spring cloud·ribbon·负载均衡
一个向上的运维者14 小时前
基于k8s的KServe 控制平面生产级部署最佳实践:基于 Gateway API 的标准化流量管理方案
llm·gateway·istio·kserve
前路不黑暗@15 小时前
Java项目:Java脚手架项目的地图服务(十)
java·数据库·spring boot·笔记·学习·spring cloud·maven
hrhcode16 小时前
【Netty】三.ChannelPipeline与ChannelHandler责任链深度解析
java·后端·spring·springboot·netty
前路不黑暗@18 小时前
Java项目:Java脚手架项目通用基类和常量类的封装(九)
java·spring boot·笔记·学习·spring cloud·maven·intellij-idea
MX_935920 小时前
@Import整合第三方框架原理
java·开发语言·后端·spring