升级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同步调用,需要采取异步方式

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐