今天在学习Spring cloud时,实现RestTemplate远程调用时,出现了java.net.UnknownHostException: member-service错误。然后开始排查:
1、首先看引入的Spring-cloud包是否正确。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
发现所使用的依赖并没有问题。
ps:我在依赖的父pom文件中设置了当前使用的spring-cloud版本是Greenwich.SR1
2、看bean设置,RestTemplate
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
发现没有加上负载均衡的注解,加上是:
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
此时再去请求,就可以正确调用了。当然了,使用feign的话,就不需要配置RestTemplate了。