You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加@LoadBalanced后Nacos服务名basic_module仍无法解析求助

问题描述

Nacos注册中心截图1
Nacos注册中心截图2
Nacos注册中心截图3
Nacos注册中心截图4

已在Nacos服务注册中心成功注册basic_module服务,且在RestTemplateConfiguration中添加了@LoadBalanced负载均衡注解,但仍无法解析basic_module。使用代码如下:

restTemplate.getForObject("http://basic_module/user/getusername",String.class); 

请求结果显示RestTemplate将其解析为basic_module:80,最终报错basic_module:nodename nor servname provided, or not known。为何添加负载均衡且注册成功后仍无法识别basic_module?


排查与解决方案

1. 确认RestTemplate实例的正确性

确保你注入的RestTemplate是带有@LoadBalanced注解的Spring容器实例,而非手动new出来的无注解实例。正确的配置类示例:

@Configuration
public class RestTemplateConfiguration {
    @Bean
    @LoadBalanced // 必须标注在该Bean上
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

如果直接用new RestTemplate()创建实例,负载均衡拦截器不会生效,RestTemplate会把服务名当作普通域名去解析。

2. 检查依赖完整性

Spring Cloud 2020.0+版本不再默认集成Ribbon,需手动引入Spring Cloud Loadbalancer依赖;同时确保Nacos服务发现依赖正确:

<!-- Nacos服务发现依赖 -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Spring Cloud负载均衡依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

3. 核对服务名称与实例状态

  • Nacos服务名称大小写敏感,确认代码中使用的basic_module与Nacos注册的服务名称完全一致;
  • 查看Nacos中basic_module的实例是否处于健康上线状态,实例端口是否配置正确(RestTemplate解析为80,说明未正确获取到实例端口信息)。

4. 验证负载均衡拦截器是否生效

调试查看RestTemplate的interceptors列表,确认包含LoadBalancerInterceptor。如果没有,说明@LoadBalanced注解未生效,可能是配置类未被Spring扫描,或存在多个RestTemplate实例冲突。

5. 检查Nacos配置与调用方注册状态

确保调用方自身也注册到Nacos,且配置文件中Nacos地址正确:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 你的Nacos地址:8848
  application:
    name: 调用方服务名称

6. 排查网络问题

报错本质是DNS解析失败,说明负载均衡未生效。检查调用方能否正常访问Nacos服务,以及Nacos返回的实例地址是否在调用方网络可达范围内(无防火墙、网络隔离等限制)。

内容的提问来源于stack exchange,提问作者185207048

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:50:07