Java 停靠的eureka discovery server会注册服务,但在尝试使用时,它们不会';行不通

Java 停靠的eureka discovery server会注册服务,但在尝试使用时,它们不会';行不通,java,spring-boot,docker,netflix-eureka,netflix-zuul,Java,Spring Boot,Docker,Netflix Eureka,Netflix Zuul,我已经用netflix eureka实现了一个发现服务,并将其对接。 这是eureka配置 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://discovery:8761/eureka server: port: 8761 运行此eureka服务和我的项目的其他服务后,其他服务正在向eureka注册。在

我已经用netflix eureka实现了一个发现服务,并将其对接。 这是eureka配置

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://discovery:8761/eureka
server:
  port: 8761

运行此eureka服务和我的项目的其他服务后,其他服务正在向eureka注册。在eureka仪表板中,它在“当前在eureka注册的实例”表中显示了我的服务

我在eureka服务器中使用以下enpoint来获取服务的实例信息。但每次我都得到“没有实例”

这是我的eureka服务器的Dockerfile

FROM openjdk:8
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
这就是我运行eureka服务docker的方式

docker run -p 8761:8761 --network=project-network --name discovery discovery-img 
我有一个zuul API网关来访问我的服务。它也被停靠。以下是zuul application.yml

server:
  port: 8990
spring:
  cloud:
    discovery:
      enabled: true
  application:
    name: zuul-gateway

eureka:
  client:
    register-with-eureka: false
    fetch-registry: true
    service-url:
      defaultZone: http://discovery:8761/eureka
  instance:
    hostname: discovery

zuul:
  host:
    connect-timeout-millis: 500000
    socket-timeout-millis: 500000
  ignored-services: "*"
  routes:
    user-service:
      path: /user/**
      serviceId: user
      stripPrefix: false
    scraping-service:
      path: /manager/**
      serviceId: manager
      stripPrefix: true
    authorization-service:
      path: /authorization/**
      serviceId: authorization-server
      stripPrefix: true
  sensitive-headers: Cookie, Set-Cookie
hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 30000


ribbon:
  ReadTimeout: 60000
  connection-timeout: 3000
  eureka:
    enabled: true

这是我的网关的Dockerfile

FROM openjdk:8
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
我就是这样做的

docker run -p 8990:8990 --network=project-network --name=gateway gateway-img
当我把请求发送到http://localhost:8990/user,在网关容器内部,它尝试连接到“发现:8080”。我不知道它为什么尝试连接到discovery:8080,因为我在discovery容器中甚至没有8080端口

当我直接向localhost:8080(用户容器)发送请求时,它工作正常。

我有两个问题

1。当我通过API网关发送请求时,它不起作用。

2。当我转到localhost:8761/clients/user时,它说没有实例。(但它在eureka仪表板中显示用户,这意味着用户服务已成功注册。)

docker run -p 8990:8990 --network=project-network --name=gateway gateway-img