无法使用Docker Compose在Eureka中注册服务

时间:2018-11-09 00:00:32

标签: docker docker-compose netflix-eureka

我正在尝试使用微服务架构来编写一些东西。 我已经为每个Service创建了Dockerfile。假设我现在只有2个微服务:Eureka和Gateway。我正在尝试在Eureka中注册网关服务。

以下是网关的属性:

server:
  port: 8000
zuul:
  prefix: /api
  routes:
    multiplications:
      path: /multiplications/**
      serviceId: multiplication
      strip-prefix: false
    results:
      path: /results/**
      serviceId: multiplication
      strip-prefix: false
    leaders:
      path: /leaders/**
      serviceId: gamification
      strip-prefix: false

endpoints:
  trace:
    sensitive: false

eureka:
  client:
    service-url:
     default-zone: http://service-registry:8761/eureka/

以下是尤里卡的属性:

server:
  port: 8761

我正在为我的容器使用Docker compose。这是docker-compose.yml

version: "3"
services:
        service-registry:
                        build:
                                context: service-registry
                        image: service-registry:latest
                        ports:
                          - "8761:8761"
                        networks:
                                - backend
        gateway:
                        build:
                                context: gateway
                        image: gateway:latest
                        depends_on:
                                - service-registry
                        ports:
                          - "8000:8000"
                        networks:
                                - backend
networks:
  backend:
    driver: bridge

这是日志中的异常:

com.netflix.discovery.shared.transport.TransportException:无法在任何已知服务器上执行请求

我不知道该怎么办。我曾尝试将eureka主机更改为localhost,但这不起作用。

1 个答案:

答案 0 :(得分:-1)

类似的问题发布在Applications not registering to eureka when using docker-compose

解决方案-在网关配置中将default-zone更改为defaultZone关键字。当我尝试在docker的容器中运行服务时,这对我有帮助。

我不知道为什么会这样-如果有人掌握了一些信息,请在下面写下答案...