简体   繁体   English

Docker compose 中的 Eureka 客户端注册失败:无法注册为客户端 - 但 Eureka 服务器和客户端单独启动并运行

[英]Eureka Client Registration Failed in Docker compose: Failing to register as client - but eureka server & client is individually up & running

I have a spring boot application for Eureka Server :我有一个Eureka Server的 Spring Boot 应用程序:

application.yml (Eureka Server) application.yml(尤里卡服务器)

server:
  port: 8761

spring:
  application:
    name: eureka

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false

I have a eureka client - say microservice2我有一个尤里卡客户端 - 比如说 microservice2

application.yml (Eureka Client - microservice2) application.yml(尤里卡客户端 - microservice2)

spring:
  application:
    name: second-feign-client

server:
  port: 8082

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka

Dockerfile: (same for both eureka-server app & microservice2 app) Dockerfile:(对于 eureka-server 应用程序和 microservice2 应用程序都相同)

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

locally, Eureka client, microservice2 , registering with Eureka Server perfectly.本地,Eureka客户端, microservice2 ,完美注册到Eureka Server。 Both are spring boot applications.两者都是 Spring Boot 应用程序。 I have dockerized both applications, & pushed to docker hub.我已经对这两个应用程序进行了 dockerized,并推送到了 docker hub。 I am trying to run these two applications in docker-compose, but the eureka client is failing to register in eureka server using docker-compose.我正在尝试在 docker-compose 中运行这两个应用程序,但是 eureka 客户端无法使用 docker-compose 在 eureka 服务器中注册。

I am getting this error:我收到此错误:

microservice2_1  | 2020-09-07 13:56:36.149 ERROR 1 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient    : D
iscoveryClient_SECOND-FEIGN-CLIENT/379b7c698e87:second-feign-client:8082 - was unable to refresh its cache! status =
Cannot execute request on any known server
microservice2_1  |
microservice2_1  | com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known ser
ver
microservice2_1  |      at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(Retryab
leEurekaHttpClient.java:112) ~[eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications
(EurekaHttpClientDecorator.java:134) ~[eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(Eurek
aHttpClientDecorator.java:137) ~[eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(Session
edEurekaHttpClient.java:77) ~[eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications
(EurekaHttpClientDecorator.java:134) ~[eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1097) [
eureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:1011) [eureka-cli
ent-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.java:1533) [eureka-c
lient-1.9.25.jar!/:1.9.25]
microservice2_1  |      at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.java:1500) [e
ureka-client-1.9.25.jar!/:1.9.25]
microservice2_1  |      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_212]
microservice2_1  |      at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_212]
microservice2_1  |      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_
212]
microservice2_1  |      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_
212]
microservice2_1  |      at java.lang.Thread.run(Thread.java:748) [na:1.8.0_212]
microservice2_1  |
eureka-server_1  | 2020-09-07 13:56:39.393  INFO 1 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry  : R
unning the evict task with compensationTime 0ms

I have gone through already discussed related question docker-eureka-spring-boot I have tried all these discussed options, but still not working.我已经经历了已经讨论过的相关问题docker-eureka-spring-boot我已经尝试了所有这些讨论过的选项,但仍然无法正常工作。

docker-compose.yml docker-compose.yml

version: "3.8"
services:
  eureka-server:
    image: dineshdontha67/eureka-server:latest
    ports:
    - "8761:8761"
    networks:
      - ms-network
  microservice2:
    image: dineshdontha67/microservice2:latest
    ports:
    - "8082:8082"
    networks:
      - ms-network
    depends_on:
      - eureka-server
    environment:
      server.port: 8082
      eureka.instance.hostname: localhost
      eureka.client.enabled: 'true'

#EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://localhost:8761/eureka
#    networks:
#      - ms-network
#    depends_on:
#      - eureka-server
#      server.port: 8082
#      eureka.host: eureka-server
#      eureka.client.enabled: 'true'
#      eureka.instance.preferIpAddress: 'true'

networks:
  ms-network:
    driver: bridge

Note: After docker-compose up, both the spring boot applications are running fine individually, but only registration is failing.注意:docker-compose up 后,两个 spring boot 应用程序单独运行正常,但只有注册失败。

E:\eureka-server>docker-compose ps
            Name                     Command         State           Ports
-----------------------------------------------------------------------------------
eureka-server_eureka-server_1   java -jar /app.jar   Up      0.0.0.0:8761->8761/tcp
eureka-server_microservice2_1   java -jar /app.jar   Up      0.0.0.0:8082->8082/tcp

Reference Repos:参考回购:

microservices2 git repo (acts as eureka-client) : microservices2 microservices2 git repo(充当尤里卡客户端): microservices2

eureka-server git repo(acts as eureka server): eureka-server eureka-server git repo(充当 eureka 服务器): eureka-server

Please help me on this.请帮我解决这个问题。 Thanks a ton!万分感谢!

version: "3.8"
services:
  eureka-server:
    image: dineshdontha67/eureka-server:latest
    ports:
    - "8761:8761"
    networks:
      - ms-network
   environment:
      eureka.instance.hostname: eureka-server
      eureka.client.serviceUrl.defaultZone: http://eureka-server:8761/eureka/

  microservice2:
    image: dineshdontha67/microservice2:latest
    ports:
    - "8082:8082"
    networks:
      - ms-network
    depends_on:
      - eureka-server
    environment:
      server.port: 8082
      eureka.client.serviceUrl.defaultZone: http://eureka-server:8761/eureka/

#EUREKA_CLIENT_SERVICEURL_DEFAULTZONE: http://localhost:8761/eureka
#    networks:
#      - ms-network
#    depends_on:
#      - eureka-server
#      server.port: 8082
#      eureka.host: eureka-server
#      eureka.client.enabled: 'true'
#      eureka.instance.preferIpAddress: 'true'

networks:
  ms-network:
    driver: bridge

Override hostname according to your service name根据您的服务名称覆盖主机名

cheers干杯

version: "3.8"

networks:  
  ms-network:  
    name: ms-network  
    driver: bridge

services:
  eureka-server:
    image: dineshdontha67/eureka-server:latest
    ports:
    - "8761:8761"
    networks:
      - ms-network
    environment:
      eureka.instance.hostname: eureka-server
      eureka.client.serviceUrl.defaultZone: http://eureka-server:8761/eureka

  microservice2:
    image: dineshdontha67/book-service:latest
    ports:
    - "8082:8080"
    networks:
      - ms-network
    depends_on:
      - eureka-server
    environment:
      server.port: 8082
      eureka.client.serviceUrl.defaultZone: http://eureka-server:8761/eureka  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Docker:客户端未连接到Eureka Server - Docker: Client not connecting to Eureka Server Docker swarm的Netflix Eureka Server和Client实例注册问题 - Netflix Eureka Server and Client instance registration issue with Docker swarm 什么是尤里卡服务、尤里卡客户端、尤里卡实例和尤里卡服务器 - What is Eureka service, Eureka Client, Eureka instance and Eureka server 运行 eureka server 和 eureka client 连接多个微服务后出错 - error after running eureka server and eureka client for connecting multiple microservices 无法将服务注册为 Eureka Client - Not able to register a service as Eureka Client Eureka服务器和Eureka客户端将Tomcat服务器分开 - Eureka server and eureka client to separate tomcat servers Spring Cloud:Eureka客户注册/注销周期 - Spring Cloud: Eureka Client registration/deregistration cycle 如何向Eureka客户端注册Spring 5应用程序 - How to register spring 5 application to eureka client 如何使用负载均衡将Eureka客户端注册到Eureka服务器群集? - How to regist an Eureka client to a Eureka server cluster with loadbalance? Spring 微服务 eureka 客户端未向 eureka 服务器注册 - Spring micro services eureka client is not registering with eureka server
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM