升级spring boot到2.7.0,gateway先启动其他微服务,在启动网关,网关启动不了,但是网关也没有任何异常日志,仅仅是一直等待状态,查看nacos服务未正常注册;先启动网关,所有服务能正常启动,产看nacos服务,所有服务能正常注册。
最终发现是Feign导致,Spring Cloud Gateway使用OpenFeign卡死
,启动不了。当在gateway网关中使用Feign时,就会导致gateway网关启动一直卡着,然而也不报错。
日志:
解决方式:
- 方式一:修改配置
由于配置了spring.cloud.gateway.discovery.locator.enabled = true导致,改为false或者去掉该配置,因为默认为false,但是该方案会导致动态路由不能加载,影响微服务调用。
gateway:
discovery:
locator:
enabled: false
- 方式二:注入使用懒加载
// 关键:这里必须使用@Lazy
@Lazy
@Autowired
private FeignCilent feignCilent ;
注意:在gateway网关中不能使用openfeign同步调用,需要采取异步方式