SpringCloud-Gateway搭配服务注册Nacos进行lb动态路由遇到的坑

首先先说结论:高版本(本人是2021.0.1.0)的spring-cloud-alibaba-dependencies依赖中去除了ribbon依赖,若想能通过Gateway网关找到对应的微服务,需要引入loadbalancer依赖。如果引入了loadbalancer依赖后还是无法找到对应的微服务,请先打开nacos页面中的服务管理,检查你的网关服务和被调用的服务(注意是服务,不是配置!)是否注册在同一个命名空间(namespace)和分组(group)当中,如果不是,你的网关将无法找到你所需要的服务。下面我给出细节

首先是spring-cloud-alibaba-dependencies的依赖:

可以看到我使用的是2021.0.1.0版本的,所以需要在引入一个loadbalancer依赖

网关微服务的bootstrap.yaml配置:

nacos上对gateway的配置:

请注意,一定要将网关服务和其他需要调用的服务放在discovery下同一个namespace和group,否则网关会找不到服务,血的教训。

个人认为对discovery进行分组可以有效进行服务注册的管理,但同时一不留意就会引入新坑!

消费者微服务的bootstrap.yaml配置:

在nacos页面上的服务注册:

请确保网关服务和其他服务都注册在了同一个命名空间namespace和分组group当中,这里namespace是5d2ccdae-2340-4d9a-a93e-c3f08846f81c.然后,group是wanxinp2p-group

消费者中的方法:

服务端口:

通过网关服务调用消费者服务中的方法,正常执行:

以上就是我碰到的坑,希望对大家有帮助,最后在贴一张我认为别人说的很对的话

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要基于Nacos实现Spring Cloud Gateway的动态网关路由,可以按照以下步骤进行操作: 1. 添加依赖:在Spring Cloud Gateway项目的pom.xml文件中添加相应的依赖,包括spring-cloud-starter-gatewayspring-cloud-starter-alibaba-nacos-discovery等。 2. 配置Nacos注册中心:在application.properties或application.yml配置文件中添加Nacos注册中心的相关配置,包括Nacos服务器地址、命名空间、分组等信息。 3. 配置动态路由:创建一个RouteLocator Bean,并在其中使用Nacos服务发现来定义动态路由规则。可以通过Nacos配置中心来管理路由规则的动态更新。 ```java @Configuration public class GatewayConfig { @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("service_route", r -> r.path("/api/v1/**") .uri("lb://service-provider")) .build(); } } ``` 上述示例中,定义了一个名为service_route的路由规则,将请求路径以/api/v1/开头的请求转发到名为service-provider的微服务上。 4. 启动Gateway应用:启动Spring Cloud Gateway应用,它会自动从Nacos注册中心获取动态路由规则并进行路由转发。 5. 管理动态路由:使用Nacos配置中心来管理动态路由规则。可以通过Nacos的控制台或API来添加、修改或删除路由规则,Gateway应用会自动更新并生效。 通过以上步骤,就可以基于Nacos实现Spring Cloud Gateway的动态网关路由了。你可以根据实际需求和业务场景,添加更多的路由规则和配置。希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值