当前位置: 首页 > 知识库问答 >
问题:

Eureka服务发现期间的java.net.UnknownHostException

勾喜
2023-03-14

根据这个博客 https://spring.io/blog/2015/07/14/microservices-with-spring

能够顺利运行html" target="_blank">应用程序。按此顺序:

  • java-jarmicroservice-demo-0.0.1-SNAPSHOT.jar注册1111
  • java-jarmicroservice-demo-0.0.1-SNAPSHOT.jar帐户2222
  • java-jarmicroservice-demo-0.0.1-SNAPSHOT.jarweb 3333

但是当试图通过web应用程序访问任何服务时(http://localhost:3333/)使用http://ACCOUNTS-SERVICE访问任何帐户服务endpoint的url,如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

当我向Web服务器而不是 http://ACCOUNTS-SERVICE 提供帐户服务的真实地址(http://localhost:2223/)时,一切都可以正常工作,但在这种情况下没有服务发现。

源代码存储在:https://github.com/paulc4/microservices-demo

共有1个答案

贺宜修
2023-03-14

此问题是由于在Brixton发布序列(Spring Cloud1.1.0.RELEASE)中不再自动创建RestTemboard,因此RestTemboard无法使用服务发现服务器正确解析超文本传输协议://ACCOUNTS-SERVICE url。

在声明带有@LoadBalanced的RestTemplate bean后,能够修复此问题,如下所示:

@Bean
@LoadBalanced
public RestTemplate restTemplate() {
    return new RestTemplate();
}
 类似资料:
  • 如何包含Eureka服务器 要在项目中包含Eureka服务器,请使用组org.springframework.cloud和工件id spring-cloud-starter-eureka-server的启动器。有关 使用当前的Spring Cloud发布列表设置构建系统的详细信息,请参阅Spring Cloud项目页面。 如何运行Eureka服务器 示例eureka服务器; @SpringBoot

  • 我有两个微服务, 在localhost:8081上运行的eureka-client-1 运行在localhost:8082上的eureka-client-2 客户端1的application.properties,与客户端2类似(只需更改名称,即eureka-client-2) eureka服务器的Application.Properties

  • 准备工作 在生产环境下,我们往往会为每个应用配置一个host,使用host而非IP进行访问。为了更加贴近生产环境,以及后文Docker章节的讲解,我们首先配置一下Host 127.0.0.1 discovery 代码示例 创建一个Maven工程(microservice-discovery-eureka),并在pom.xml中加入如下内容: <?xml version="1.0" encoding

  • 服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。Netflix服务发现服务器和客户端是Eureka。可以将服务器配置和部署为高可用性,每个服务器将注册服务的状态复制到其他服务器。 如何包含Eureka客户端 要在您的项目中包含Eureka客户端,请使用组org.springframework.cloud和工件ID spring-cloud-st

  • pom.xml 主应用程序类 Application.Properties eureka客户端设置 pom.xml Application.Properties 我在eureka-server仪表板(http://localhost:8761)中没有看到向Eureka server注册的micro-service-currency-exchange-service 为什么eureka客户端没有注册