我在本地系统中使用eureka服务器和zuul spring云工具创建了一个示例spring spring微服务。它运行正常。我在eureka服务器项目中注册了我的微服务作为客户端。并在eureka服务器上注册了我的zuul作为客户。
以下是我的eureka serer项目application.properties,
server.port=8071
eureka:
numberRegistrySyncRetries: 1
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://localhost:8071/eureka/
server:
enable-self-preservation: true
以下代码是我的微服务application.property文件内容,
eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
我的zuul application.properties代码是,
eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=eurekaZuulClient
ribbon.eureka.enabled=true
zuul:
routes:
espace-service:
path: /espace/**
stripPrefix: true
serviceId: espace-service
server.port=8090
答案 0 :(得分:1)
很有可能知道Eureka的端口,以便我们可以轻松检查各种API的状态。云部署有多种方法可以解决这个问题。
您可以对部署了eureka的实例的IP进行硬编码,并将其与配置文件名称分开。
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
---
eureka:
client:
serviceUrl:
defaultZone: http://172.0.0.1:8761/eureka/
---分隔符下的配置位用于在云Spring配置文件下运行应用程序时。使用SPRING_PROFILES_ACTIVE环境变量设置配置文件很容易。您可以在manifest.yml中配置Cloud Foundry环境变量,也可以在Cloud Foundry Lattice上配置Docker文件。
如果Java无法确定主机名,则会将IP地址发送给Eureka。设置主机名的唯一明确方法是使用eureka.instance.hostname。您可以使用环境变量在运行时设置主机名,例如eureka.instance.hostname = $ {HOST_NAME}
eureka:
instance:
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/