Java 停靠的eureka discovery server会注册服务,但在尝试使用时,它们不会';行不通
我已经用netflix eureka实现了一个发现服务,并将其对接。 这是eureka配置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注册。在
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