使用Spring Boot和Eureka的Resttemplate

时间:2018-07-12 12:19:35

标签: spring-boot netflix-eureka

我使用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不在我的范围内,可以解决此问题吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您将必须创建另一个没有负载平衡的RestTemplate。

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

要调用未在Eureka中注册的任何服务,请使用非负载平衡的RestTemplate。因为,使用负载平衡的其余模板,它将始终尝试从Eureka注册表中解析服务。