2017-08-17 55 views
0

春天启动的应用程序(部署到Cloud Foundry)我跟着这个文档:http://cloud.spring.io/spring-cloud-consul/1.0.x/index.html和配置我的春节,启动应用程序如下:如何正确地注册在领事

spring: 
    cloud: 
    consul: 
     enabled: true 
     host: consul.domain.tld 
     port: 443 
     discovery: 
     instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 
     fail-fast: false 

当部署到Cloud Foundry,应用程序可以连接给领事并尝试注册,但领事的“服务检查”立即失败。

读什么配置,我得到在Spring应用程序启动以下情况:

list = discoveryClient.getInstances("myApp"); 
list.get(0) => "http://05c81764-18a4-4905-41a8-b5b8:8080" 

我看到UUID最有可能的是Cloud Foundry中产生的实例Id。当然,该网址不适用于Cloud Foundry,也不适用于外部Consul服务器试图定期检查服务的运行状况。

如何正确配置我的Spring Boot应用程序以便在Cloud Foundry中使用Consul工作进行服务注册?

回答

1

您需要将spring.cloud.consul.discovery.hostname设置为由vcap环境变量返回的值。

喜欢的东西:

spring.cloud.consul.discovery.hostname=${vcap.application.uris[0]:localhost} 
spring.cloud.consul.discovery.port=80 
+0

谢谢斯宾塞,'hostname'和'port'的伎俩。 – user3105453

相关问题