Ribbon+Nacos+RestTemplate使用记录

本文记录了一次使用Ribbon+Nacos+RestTemplate进行微服务负载均衡的实践过程,包括项目结构、注册到Nacos注册中心、消费者配置负载均衡的步骤。在实践中,作者遇到了误区和一些低级错误,如混淆服务提供者和消费者概念,以及包名冲突导致的问题,最终实现了负载均衡功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天使用Ribbon+Nacos+RestTemplate测试负载均衡
然后依然是踩了好多坑,因为是小白吧,记录一下。

误区

最开始,我以为服务注册中心那边是区分服务提供者和服务消费者的,比如说消费者叫订阅,提供者叫注册,后来才知道服务中心并不区分什么消费者和提供者,比如服务1和服务2,都是以相同的方式注册,他们甚至可以互为消费者。

正文
项目结构

下图是我的代码结构,有订单和商品两个服务,其中,我用订单做消费者,商品做服务提供者:
在这里插入图片描述

注册到注册中心

在消费者和提供者的pom文件中,都要引入Nacos依赖:

 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.0.RELEASE</version>
        </dependency>

然后配置文件中,都要配置注册中心地址:

cloud:
  nacos:
    discovery:
    
### NacosRibbon集成时负载均衡不起作用解决方案 对于NacosRibbon集成过程中遇到的负载均衡功能失效的情况,可以采取如下措施: #### 修改依赖版本兼容性 由于Nacos 2021版本已不再内置对Ribbon的支持[^2],因此如果项目仍然希望继续使用Ribbon作为其客户端负载均衡器,则需手动引入额外的支持包`spring-cloud-starter-loadbalancer`。这一步骤是为了确保即使在较新的Spring Cloud Alibaba环境中也能正常工作。 ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> ``` #### 配置文件调整 确认application.yml配置文件内的设置正确无误。特别是关于启用特定类型的负载平衡规则部分,应确保路径和服务名称拼写准确,并且遵循官方文档推荐的最佳实践方式指定类名。例如,在YAML格式下定义如下所示的内容以应用自定义策略: ```yaml userservice: ribbon: NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 设置为Nacos默认规则或其他所需规则 ``` 需要注意的是,上述方法适用于那些尚未迁移至更现代架构的应用程序;而对于新开发或是计划升级现有系统的场景来说,建议考虑采用更加先进的替代方案如`@LoadBalanced RestTemplate` 或者 `WebClient`配合`spring-cloud-loadbalancer`组件一起使用[^3]。 #### 检查日志输出 当怀疑存在配置错误或者其他潜在问题影响到预期行为的时候,查看应用程序的日志记录往往能提供有价值的线索。通过增加调试级别或将相关模块的日志等级设为TRACE可以帮助定位具体原因所在之处。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值