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注解将无法生效。
解决实例

相关推荐
为java加瓦11 小时前
Spring 方法注入机制深度解析:Lookup与Replace Method原理与应用
java·数据库·spring
无名客011 小时前
SpringCloud中的网关(Gateway)的作用是什么?
spring·spring cloud·gateway
hrrrrb14 小时前
【Spring Security】Spring Security 概念
java·数据库·spring
小信丶14 小时前
Spring 中解决 “Could not autowire. There is more than one bean of type“ 错误
java·spring
hello 早上好20 小时前
深入 Spring 依赖注入底层原理
数据库·sql·spring
cxyxiaokui0011 天前
🔍 为什么我的日志在事务回滚后也没了?——揭秘 REQUIRES_NEW 的陷阱
java·后端·spring
跟着珅聪学java1 天前
spring boot 整合 activiti 教程
android·java·spring
Java水解1 天前
Spring JDBC与KingbaseES深度集成:构建高性能国产数据库应用实战
后端·spring
低音钢琴1 天前
【SpringBoot从初学者到专家的成长15】MVC、Spring MVC与Spring Boot:理解其差异与联系
spring boot·spring·mvc
Nan_Shu_6141 天前
学习SpringBoot
java·spring boot·后端·学习·spring