Springcloud-alibaba&nacos的RestTemplate使用服务名报异常java.net.UnknownHostException

与CSDN同步文章

前言

本地测试,springboot注册了nacos服务,然后一个springboot通过服务名(http://服务名/接口)调用服务,查看nacos控制台服务都已经注册了,但是无论我是否给RestTemplate添加@LoadBalanced注解,都是报UnknownHostException错误

解决

在maven pom.xml中添加下面的依赖即可

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>3.0.1</version>
</dependency>

pom依赖

image-20220305234320833

controller

@RequestMapping("/add")
public String add(){
System.out.println("xx成功");
String msg = restTemplate.getForObject("http://stock-service/stock/reduct", String.class);
return "xx成功" + msg;
}
123456

SpringBootApplication

public static void main(String[] args) {
SpringApplication.run(xxxApplication.class,args);
}

@Bean
@LoadBalanced
public RestTemplate restTemplate(RestTemplateBuilder builder){
RestTemplate restTemplate = builder.build();
return restTemplate;
}
12345678910

版本对应

版本:

SpringCloud-Alibaba SpringBoot SpringCloud
2021.1 2.4.5 2020.0.1

官方版本对应地址springcloud-alibaba&springboot&springcloud