解决RestTemplate的No instances available for localhost错误

兮城

关注

阅读 76

2022-03-14

问题:

在通过RestTemplate进行调用其他项目的API时,由于是在本地调本地,产生了No instances available for localhost错误,导致无法调用。

原因:

既然是负载均衡,那必然是多台服务器的负载均衡,用IP访问就没有意义了,因此用负载均衡的注解时,不能用IP或者localhost,而应该用服务名。

RestTemplate的底层错误原因(摘录):

解决方案:

在配置类配置RestTemplate时,分别配置负载均衡与默认优先选择,即写两个RestTemplate方法

@LoadBalanced
@Bean
public RestTemplate loadBalanced1() {
    return new RestTemplate();
}

@Primary
@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}

精彩评论(0)

0 0 举报