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

相关推荐
阿湯哥4 小时前
Spring AI Alibaba 实现 Workflow 全指南
java·人工智能·spring
萧曵 丶6 小时前
Spring Cloud Alibaba 详解
spring·spring cloud
szm02256 小时前
Spring
java·后端·spring
萧曵 丶8 小时前
Spring 全套高频面试题(由浅到深 完整版)
java·后端·spring
雨中飘荡的记忆9 小时前
Spring Security入门:构建安全应用
spring
老毛肚10 小时前
Spring源码探究2.0
java·后端·spring
涵涵(互关)10 小时前
添加了 @TableId(type = IdType.AUTO) 但仍生成超大 ID
数据库·spring·mybatis
运维@小兵11 小时前
Spring AI入门
java·人工智能·spring
仙俊红11 小时前
Spring 构造器注入 vs 字段注入
java·后端·spring
0和1的舞者12 小时前
Spring 事务核心知识点全梳理(编程式 + 声明式 + 注解详解)
java·后端·spring