今天在学习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了。
博主学习Spring Cloud实现RestTemplate远程调用时,出现java.net.UnknownHostException: member-service错误。经排查,引入的Spring-cloud包无误,在RestTemplate的bean设置中加上负载均衡注解后,可正确调用,若使用feign则无需配置RestTemplate。
1万+

被折叠的 条评论
为什么被折叠?



