我创建了一个Spring Eureka注册表、Spring Gateway和一个客户服务。在我的本地机器上,一切工作正常。我打开我的注册表,看到类似这样的东西。
host.docker.internal:customer-management-ws:c390c86d4ab279fb780ad324347681b0点击它,我看到了一个准备好的信息json,里面有这个服务的有用信息(acutator/ info )。
我的网关在端口8011上运行。如果我打电话给
localhost:8011/customer-management-ws/customer/all我做了一个GET请求,带有集成负载均衡器的网关将我的请求委托给我正在运行的客户ws...perfect。
=========
今天,我将所有这三个服务都部署到了一个外部linux服务器上。注册表、网关和customer-ws在docker容器中运行。所以总共有三个码头集装箱。
当我转到新的Eureka Registry URL时,我看到一些与我的localhost略有不同的东西。
1ee684bc4d4e:customer-management-ws:8fef838e6471c0f72ce610d3c9b960a3单击它,什么也不会发生(页面未找到)。
我的docker网关在端口8011上运行。如果我打电话给
myserver.org:8011/customer-management-ws/customer/allGET请求返回错误500,网关docker日志显示
java.net.UnknownHostException: failed to resolve '1ee684bc4d4e' after 2 queries
at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1046) ~[netty-resolver-dns-4.1.67.Final.jar!/:4.1.67.Final]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
|_ checkpoint ⇢ HTTP GET "/customer-management-ws/api/swagger-ui.html" [ExceptionHandlingWebHandler]有什么办法解决这个问题吗?什么是1ee684bc4d4e,为什么负载均衡器不能将它解析到它背后的docker customer-ws容器?
我的docker customer-ws在端口8020上运行。如果是直接呼叫
myserver.org:8020/customer/all
get请求成功。
发布于 2021-09-23 15:04:16
解决方案是在同一网络中运行所有三个Docker Container。
https://stackoverflow.com/questions/69301502
复制相似问题