Gateway结合nacos(lb://xxx)无效问题

Gateway结合nacos无效

版本如下:

com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2021.0.1.0

org.springframework.cloud:spring-cloud-starter-gateway:3.1.1

配置如下:

yml 复制代码
server:
  port: 7000
spring:
  application:
    name: springCloudGateway
  cloud:
    nacos:
      discovery:
        server-addr: xxx.xxx.xxx.xx:8848
      username: xxx
      password: xxx
    gateway:
      routes:
        - id: product_route
          uri: lb://nacos-consumer
          predicates:
            - Path=/consumer/**
          filters:
            - StripPrefix=1

我测试过了,使用http://localhost:xxx的方式就可以访问

lb:和http:的区别就在于,一个是固定的访问地址,一个是使用负载均衡去访问,所以问题出来负载均衡这里

在网上找到解决方案说是添加一个loadBalancer依赖就好了

xml 复制代码
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            <version>3.1.1</version>
        </dependency>

问题解决!但为什么我添加一个负载均衡依赖就好了?

我科学上网了一下找到了这个为什么会这样,如下:
在Spring Cloud Gateway 2.x及以上版本中,官方文档已经明确表示不再支持Ribbon作为默认的负载均衡器实现。因此,从这个版本开始,Spring Cloud Gateway不再提供自带的负载均衡器组件。
不过,Spring Cloud Gateway可以与Spring Cloud LoadBalancer集成来实现负载均衡的功能。Spring Cloud LoadBalancer是一个独立的模块,它提供了一个基于服务实例列表的负载均衡器实现,可以与Spring Cloud Gateway和其他Spring Cloud组件一起使用。

也就是说如果你想要在Spring Cloud Gateway中使用lb://service-name这种形式的URI来访问Nacos注册中心的服务,那么需要在依赖中引入Spring Cloud LoadBalancer的相关依赖。

相关推荐
半旧夜夏3 天前
【Gateway】服务调用和网关配置攻略
java·spring boot·spring cloud·gateway
小坏讲微服务3 天前
Nginx集群与SpringCloud Gateway集成Nacos的配置指南
spring boot·nginx·spring cloud·gateway
小坏讲微服务3 天前
使用 Spring Cloud Gateway 实现集群
java·spring boot·分布式·后端·spring cloud·中间件·gateway
没有bug.的程序员3 天前
Spring Cloud Gateway 路由与过滤器机制
java·开发语言·spring boot·spring·gateway
serendipity_hky5 天前
【微服务 - easy视频 | day01】准备工具+gateway网关及路由至内部服务
java·微服务·架构·gateway·springcloud
三口吃掉你8 天前
微服务之网关(Spring Cloud Gateway)
java·网关·微服务·gateway
余衫马9 天前
微服务SpringCloud报错合集
spring boot·gateway
Zz_waiting.9 天前
统一服务入口-Gateway
java·开发语言·gateway
菲兹园长10 天前
微服务组件(E、L、N、O、G)
linux·服务器·gateway
tuokuac13 天前
依赖spring-cloud-starter-gateway与spring-cloud-gateway-dependencies的区别
java·gateway