云部署中的Spring云微服务配置

时间:2017-11-15 14:54:32

标签: cloud spring-cloud

我在本地系统中使用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
  • 我怀疑的是,当我们将此应用程序部署到云中时,我们需要在application.properties中进行哪些更改?因为我们在云端不了解server.port和“eureka.client.serviceUrl.defaultZone”这里我只和localhost一起运行。那么我们如何在配置中遵循云部署过程?我是初春云。所以我在这些配置中有很多困惑。任何人都可以帮我澄清我的问题吗?

1 个答案:

答案 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/