根据此博客https://spring.io/blog/2015/07/14/microservices-with-spring
能够毫无问题地运行应用程序。按此顺序:
但是当尝试通过使用http://localhost:3333/网址访问任何帐户服务端点(例如http://ACCOUNTS-SERVICE)的网络应用程序(http://ACCOUNTS-SERVICE/accounts/123456789)点击任何服务时,我收到错误响应:
Response Status: 500 (Internal Server Error)
Cause: org.springframework.web.client.ResourceAccessException I/O error on GET request for "http://ACCOUNTS-SERVICE/accounts/123456789": ACCOUNTS-SERVICE; nested exception is java.net.UnknownHostException: ACCOUNTS-SERVICE
当我向网络服务器而不是http://localhost:2223/提供帐户服务的真实地址(http://ACCOUNTS-SERVICE)时,一切正常,但在这种情况下没有服务发现。
答案 0 :(得分:13)
此问题是由于Restrimplate不再在Brixton发布系列(Spring Cloud 1.1.0.RELEASE)中自动创建,因此RestTemplate无法使用服务发现正确解析http://ACCOUNTS-SERVICE网址服务器
在使用@LoadBalanced声明RestTemplate bean之后能够解决此问题,如下所示:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}