我使用spring-boot和一个eureka客户端创建了一个项目(我的eureka服务器中还有两个其他项目注册),因此要访问在我的应用程序中创建的RestTemplate这样的另外两个项目,就像这样:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
因此,现在,当我尝试访问我的项目之一时,我只在URL中输入“ http://my-project1/”或“ http://my-project2/”,而eureka服务器会为我解析该URL。
但是现在我需要从我的范围之外打电话给其他人(例如邮政编码服务的样本),所以如果我放:
return restTemplate.getForObject("https://viacep.com.br/ws/11380120/json", String.class);
不起作用,因为viacep.com不在我的范围内,可以解决此问题吗?
答案 0 :(得分:2)
在这种情况下,您将必须创建另一个没有负载平衡的RestTemplate。
@Bean("rawRestTemplate")
public RestTemplate restTemplate() {
return new RestTemplate();
}
要调用未在Eureka中注册的任何服务,请使用非负载平衡的RestTemplate。因为,使用负载平衡的其余模板,它将始终尝试从Eureka注册表中解析服务。