springboot 2.2.x 集成 springcloud gateway 2.2.1 出现网关不能路由的情况

最近想用 springboot + springcloud alibaba + nacos + gateway 搭建一个微服务架构的时候出了一个很奇怪的问题, gateway 网关路由失败的情况, 以下是报错信息:
在这里插入图片描述
这里我用了 nacos 搭建了配置中心, 以下是 gateway 的配置文件:

spring:
  cloud:
    nacos:
      discovery:
      # 这里ip自己填
        server-addr: ip:8499
    gateway:
      discovery:
        locator:
        #表明gateway开启服务注册和发现的功能,并且spring cloud gateway自动根据服务发现为每一个服务创建了一个router,
          #这个router将以服务名开头的请求路径转发到对应的服务
          enabled: true  
          #是将请求路径上的服务名配置为小写(因为服务注册的时候,向注册中心注册时将服务名转成大写的了
          lower-case-service-id: true  
        routes:
          # 此为服务名
          -id: test
          #lb 前缀, 开启负载均衡
          uri: lb://test
          predicates:
            - Path=/test/** 
          filters:
          # 从二级url开始适配
             - StripPrefix=1

可以看到网关和测试服务都已经注册到了 nacos 注册中心
在这里插入图片描述
查看源码发现转发路由失败的原因是 gateway 网关底层调用的是 reactor-netty 包的 httpclient 进行路由转发, 但是因为 springcloud gateway 2.2.1 中 reactor-netty 的httpclient 好像是重写了, 没有路由转发的关键方法导致报错
springboot 2.2.x 集成 springcloud gateway 2.2.1 出现网关不能路由的情况_第1张图片
于是把 springcloud gateway 中的 reactor-netty 依赖排除, 然后引入新的 reactor-netty 依赖, 问题解决

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>reactor-netty</artifactId>
                    <groupId>io.projectreactor.netty</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.projectreactor.netty</groupId>
            <artifactId>reactor-netty</artifactId>
            <version>0.8.14.RELEASE</version>
        </dependency>

springboot 2.2.x 集成 springcloud gateway 2.2.1 出现网关不能路由的情况_第2张图片

如果有大佬知道把依赖替换掉会有啥严重后果的, 指点我一下, 多谢

你可能感兴趣的:(java)