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

无法通过docker中的ZUUL api网关连接到微服务

劳法
2023-03-14

我跟踪了服务,当它们部署在localhost中(通过eclipse)时,它们工作得很好。但在部署为单独的docker容器时无法调用rest服务。

我是一个新的docker并且参加了教程来了解这是如何工作的。

Docker IP : 172.17.0.3
Docker port mapping : 8761:8761

spring.application.name=naming-server
server.port=8761

祖尔阿皮门路

Docker IP : 172.17.0.4
Docker port mapping : 8765:8765

spring.application.name=gateway-server
server.port=8765

用户服务

Docker IP : 172.17.0.5
Docker port mapping : 8101:8101

spring.application.name=user-service
server.port=8101

尤里卡注册服务信息

    com.netflix.zuul.exception.ZuulException: Forwarding error
        at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.handleException(RibbonRoutingFilter.java:198) ~[spring-cloud-netflix-zuul-2.2.0.RELEASE.jar!/:2.2.0.RELEASE]
        at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:173) ~[spring-cloud-netflix-zuul-2.2.0.RELEASE.jar!/:2.2.0.RELEASE]

    Caused by: java.net.UnknownHostException: de4396a354ea: Name or service not known
        at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]
        at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929) ~[na:na]
        at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1515) ~[na:na]

注意:“DE4396A354EA”是“用户服务”的容器id

请提供关于如何解决此问题的指导,并提供任何链接,我可以在这些链接中获得关于在docker容器中部署微服务的更多信息。

共有1个答案

严阳成
2023-03-14

可以通过添加“eureka.instance.hostname=”属性来解决此问题。

 类似资料:
  • 我正在运行一个 Kubernetes 集群,我在不同场合启用了两个服务网格 Istio 和 Linkerd。 当我尝试部署Spark独立集群时,每个Spark工作人员和Master将在不同的pod中运行,工作人员无法连接到Spark Master。 可以通过服务(通过 sidecar 传递)从工作线程运行 curl 请求,以获取 Spark Master UI。但是,当尝试启动连接到主服务器的 S

  • 我有一个使用LocalDB并在Windows PC上运行良好的应用程序,但是我试图通过我的mac运行它......我正在努力将应用程序连接到位于docker上的mySQL服务器。我一直在遵循其他指南,例如(https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver1

  • 我的入口pod无法通过IP访问两个集群IP服务。有很多其他集群IP服务它没有到达困难。包括在同一个命名空间中。另一个pod到达服务没有问题(我在同一个命名空间中尝试了默认后端,一切正常)。 我应该去哪里?以下是我的实际服务,它无法到达第一个,但可以到达第二个: 我的入口吊舱:

  • 例外情况是: docker-compose文件是: 多克菲乌勒

  • 简介: 我有一个 SAAJ 客户端,它通过 HTTPS 调用远程网络服务。客户端和服务器都需要通过证书进行身份验证。在 IDE 中运行 JUnit 测试时,我可以成功调用该服务,但在 JBoss 中运行时无法连接。 密钥库/信任库配置详细信息:在IDE和JBoss中,我通过系统属性设置密钥库和信任库:,,, 日志配置:在JBoss中,我已经通过系统属性< code>javax.net.debug=

  • 在微服务体系结构中,有一种称为API网关的常见模式。 我知道所有来自API网关外部的通信都被用作单个入口点。 但是我也希望从微服务到微服务的内部通信是通过API网关进行的?我的意思是,这比建立点对点连接要容易得多。 那么,是什么反对将API网关也用于整个内部通信呢?