2016-02-23 78 views
2

在Spring Cloud Zuul服務器中,我們可以定義所有需要通過「application.properties」重定向的路由。如何在Spring雲中配置路由Zuul

例如:

zuul.routes.resource.path=/api/** 
zuul.routes.resource.url=http://api.com:9025 

一旦脂肪罐子創建「application.properties」被封裝到罐子,這是不可能到裏面的文件編輯和重新加載規則。

是否有任何通知Zuul有關外部文件中的路由,同時在不停止服務器的情況下重新加載它們?

+0

經過一段時間尋找解決方案後,我發現我可以爲配置服務器內的zuul應用程序(例如zuul)創建應用程序屬性。屬性,並在那裏設置所有路線。提及bootstrap.properties中的config客戶端名稱必須與config server中的應用程序屬性名稱相同,這一點很重要。 –

回答

1

用於管理應用的外部性質...有點遲到了,但是......

你可以做一切你想用ConfigServer!

  1. 創建配置的application.yml跨所有應用程序
  2. 創建輪廓特定應用mycommonprofile.yml是常見的。作爲1.但是對於'mycommonprofile'配置文件。
  3. 爲每個特定於該應用程序的應用程序創建一個appX.yml。
  4. 創建配置文件特定的appX-myprofile.yml。至於3.但是對於'myprofile'配置文件。

所有這些文件都是可選的,不依賴於其他文件。例如,你可以擁有一個沒有application.yml的application-mycommonprofile.yml。

希望有幫助!

3

您可以使用spring cloud config。

Spring Cloud Config爲分佈式系統中的外部化配置提供服務器和客戶端支持。隨着配置服務器,你有一箇中心位置在所有環境

http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_spring_cloud_config_client

+0

唯一不便的是Cloud Config Server與所有連接到它的項目共享這些屬性,請記住'路由'屬性專供Zuul服務器使用,同時我將爲其他項目提供不必要的屬性。這就是問題! –

+0

有沒有辦法通知Zuul服務器如何重新加載規則? –

+0

據我所知,Config Server只是將屬性分享給相關的應用程序。在我的配置服務器中,我有app1.yml,app2.yml,每個應用程序都有你自己的屬性。關於第二個問題,我不知道是否有可能。 –

0

另一個晚會派對的答案,但另一種方法是使用配置文件,它位於fatjar之外的文件系統中。

如果您的Zuul代理的配置名稱是'zuul'並且您的正常配置文件是'zuul.properties'或'zuul.yaml',那麼它會在'zuul-.properties'中查找特定於配置文件的配置文件'或'zuul-.yaml'。 如果您未指定配置文件,則名爲「default」的配置文件處於活動狀態。

因此,您可以從外部文件名'zuul-default.properties'或'zuul-default.yaml'(或'zuul-default.yml',如果使用3個字母的文件擴展名)加載屬性。 然後在沒有指定其他配置文件時加載。