spring cloud无法从docker中的zuul获取服务

问题描述 投票:0回答:1

我有一个简单的Spring云项目,它包含4个服务:

  • 配置:8888
  • 注册表(尤里卡):8761
  • 网关(zuul):8080
  • 服务-1:9527

enter image description here

如果部署在localhost中,该项目没有问题,

我可以在没有docker的情况下通过zuul成功获取service-1的api:

http://localhost:8080/service-1/test

但是当我使用docker部署时,它会抛出错误:Caused by: java.lang.RuntimeException: org.apache.http.conn.HttpHostConnectException: Connect to registry:9527 [registry/172.21.0.4] failed: Connection refused (Connection refused)

我只能用service-1的api获取

http://localhost:9527/test

PS:两个服务(网关,服务-1)已经成功登记到尤里卡

这是我的docker-compose yml:

version: '3'
services:
  config:
    build: ./config
    ports:
      - "8888:8888"
  registry:
    build: ./registry
    ports:
      - "8761:8761"
    depends_on:
      - config
    environment:
      - SPRING_PROFILES_ACTIVE=prd
  gateway:
    build: ./gateway
    depends_on:
      - config
    links:
      - registry
      - service-1
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=prd
  service-1:
    build: ./service-1
    ports:
      - "9527:9527"
    depends_on:
      - config
    links:
      - registry
    environment:
      - SPRING_PROFILES_ACTIVE=prd

谁能帮我?

docker spring-cloud netflix-eureka netflix-zuul spring-cloud-netflix
1个回答
0
投票

我已经解决了这个问题,我忘了在网关主类上添加@EnableDiscoveryClient,并覆盖eureka实例主机名

© www.soinside.com 2019 - 2024. All rights reserved.