【发布时间】:2022-01-26 08:53:50
【问题描述】:
希望你做得很好,我遇到一个问题并尝试解决很多天但失败了。我有两个spring boot微服务,一个叫客户端,一个叫服务端。当我对微服务进行 dockerize 并运行服务器时,它运行正常,但是当我尝试运行客户端时,它给了我一个错误。错误是这样的。
2021-12-27 11:01:45.646 WARN 1 --- [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator : There was a problem with the instance info replicator
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:876) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121) ~[eureka-client-1.10.17.jar!/:1.10.17]
at com.netflix.discovery.InstanceInfoReplicator$1.run(InstanceInfoReplicator.java:101) ~[eureka-client-1.10.17.jar!/:1.10.17]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na]
服务器 application.yml 文件是;
server.port: 8761
eureka:
instance:
hostname: eurekaserver
client:
registerWithEureka: false
fetchRegistry: false
spring:
application:
name: EUREKA-SERVER
而客户端的application.yml文件是这样的;
server:
port: 8080
spring:
application:
name: EUREKA-CLIENT
eureka:
instance:
hostname: eurekaclient
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka
我试试defaultZone: http://eurekaserver:8761/eureka。但得到了同样的错误。
Client的docker文件是:
FROM openjdk:17-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} eurekaclient.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/eurekaclient.jar"]
提前致谢 :)
【问题讨论】:
-
您何时看到上述问题 - 在客户端启动期间?假设您能够启动这两个服务,localhost:8761 会显示什么?
-
localhost:8761 显示我的服务器,它运行正常。
-
是否显示注册客户?
-
否,当我运行客户端容器时,我在日志文件中看到上述错误。
There was a problem with the instance info replicator -
客户端试图找到服务器,但它失败了,我不知道为什么。
标签: spring-boot docker microservices netflix-eureka