2015-12-08 45 views
0

我們正在建立一個新的微服務架構,其中Zuul位於前端,後端位置還有一堆支持tomcat的微服務。每個服務在啓動時都會向Eureka註冊,任何想要調用這些服務的客戶都將通過Zuul進行註冊。我們已經將這一切都接通了,一切正常。Zuul自動發現問題

但是,我有幾個問題想知道如何讓這個架構更加動態。我們假設

  1. 的一件事是有出有色帶/尤里卡的方塊,但還沒有找到一個解決方案是,當我們到後端添加更多的服務,以某種方式(通過Archiaus和更新Zuul的eureka-client.properties文件)Zuul的Ribbon客戶端會使用新的服務細節(例如vipaddress,負載均衡算法等​​)進行更新。到目前爲止,唯一可行的是更新屬性文件並重新啓動Zuul(ughhh)。

例如,我們今天說我們有2個微服務在後端,因此,Zuul的尤里卡/色帶客戶端配置將包括以下:

ribbon.client.niws.clientlist =服務1 |客服2 zuul .ribbon.namespace = zuul.client

service1.zuul.client.DeploymentContextBasedVipAddresses = myService1 service1.zuul.client.NIWSServerListClassName = com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

service2.zuul.client.DeploymentContextBasedVipAddresses = myService2 service2.zuul.client.NIWSServerListClassName = com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

現在的明天,讓我們假設我們需要增加服務3。我們觀察到的是,如果我們將這些細節添加到相同的配置(見下文),它們只有在重新啓動後才能被Zuul使用。是否還有其他一些配置參數可供我們動態引入新的服務細節,或者我們是否需要推出自己的Eureka/Ribbon客戶端來執行此操作?

ribbon.client.niws.clientlist =服務1 |客服2 |服務3 zuul.ribbon.namespace = zuul.client

service1.zuul.client.DeploymentContextBasedVipAddresses = myService1 service1.zuul.client.NIWSServerListClassName = COM .netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

service2.zuul.client.DeploymentContextBasedVipAddresses = myService2 service2.zuul.client.NIWSServerListClassName = com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

service3.zuul.client.DeploymentContextBasedVipAddresses = myService3 service3.zuul.client.NIWSServerListClassName = com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList

  • 我的另一問題是有關,這是做我們真的需要爲Zuul可能路由到的每個服務添加一個客戶端配置(在eureka-client.properties中)?在某些時候,我們可能有100個服務正在運行,並且試圖維護Zuul中的所有相關客戶端配置似乎有點笨拙。有沒有一種方法可以全局配置Zuul從Eureka(或基於Eureka中的某些服務元數據)將所有服務加載到其客戶端列表中,並在新服務向Eureka註冊時動態更新此列表?
  • 謝謝!

    回答

    0

    問題在於命名空間。如果我們使用默認名稱空間,它應該能夠獲取默認添加的新屬性。

    +0

    你能更精緻一點嗎?您是如何將您的新服務添加到Zuul客戶端的? – user1692342