我正在尝试使用微服务架构来编写一些东西。 我已经为每个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,但这不起作用。
答案 0 :(得分:-1)
类似的问题发布在Applications not registering to eureka when using docker-compose
解决方案-在网关配置中将default-zone更改为defaultZone关键字。当我尝试在docker的容器中运行服务时,这对我有帮助。
我不知道为什么会这样-如果有人掌握了一些信息,请在下面写下答案...