2016-08-26 207 views
0

我有在AWS中運行的彈簧web應用程序(不是彈簧啓動)。我正在嘗試創建集中式配置服務器。如何在更改屬性後刷新spring-cloud-client?按照教程彈簧雲配置客戶端沒有尤里卡,絲帶和彈簧啓動

器終端通過發送一個空HTTP POST到客戶端的刷新端點,http://localhost:8080/refresh,並確認它的工作通過審查http://localhost:8080/message端點。

但是我的aws Ec2實例在loadbalancer後面,所以我無法調用客戶端url。我不太瞭解netflix Eureka和Ribbon,但似乎在客戶端添加了另一個級別的負載平衡器。我不喜歡這種方法。只是爲了改變財產,我不想讓現有的項目變得不必要的複雜。有沒有其他方法?或者我誤解了尤里卡/絲帶的用法?

我看了看spring-cloud-config-client-without-spring-boot,spring-cloud-config-client-without-auto-configuration他們都沒有答案。第一個線程在2015年回答。想知道有沒有更新?

+0

尤里卡和功能區與配置客戶端無關。有一個HTTP API來配置服務器,但它仍然是你必須在非引導客戶端上實現的東西。 – spencergibb

+0

@spencergibb你能解釋一下關於Http Api嗎?或提供參考鏈接?客戶端如何刷新屬性更改? – Chandru

回答

1

從配置服務器獲取配置屬性。你可以做一個http請求。例如:

從文檔,我們可以看到:

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml <- example 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

所以,如果你會做一個請求http://localhost:8080/applicationName-activeProfile.yml您將收到.yml格式的屬性與該名稱和活動配置文件的應用程序。 Spring啓動配置客戶端會自動提供這些值,但您必須手動提供這些值。

你不需要Eureka/Ribbon來工作,它是一個獨立的組件。 更多信息:http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_spring_cloud_config

也許你甚至可以使用spring-cloud-config,但我不確定沒有spring-boot需要什麼額外的配置。 https://cloud.spring.io/spring-cloud-config/

+0

@spencergibb感謝您的解釋。如果春季啓動自動刷新屬性發生活動請求會發生什麼? – Chandru

+0

主動請求什麼? – spencergibb

+0

@spencergibb如果我有三個實例位於負載均衡器後面,並且負載均衡器是已經公開的URL,如果我在客戶端上調用refresh api,它將在三個實例之一上觸發它。不是全部三個。我應該怎麼做才能確保我可以刷新每個實例。 – Anunay