2017-08-17 68 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