SpringCloud 將Ribbon與Eureka一起使用

2023-11-22 14:12 更新

當(dāng)Eureka與Ribbon結(jié)合使用時(也就是說,兩者都在類路徑上),ribbonServerList被擴展名DiscoveryEnabledNIWSServerList覆蓋,這將填充{71中的服務(wù)器列表/}。它還用NIWSDiscoveryPing替換了IPing接口,該接口委托給Eureka確定服務(wù)器是否啟動。默認(rèn)安裝的ServerListDomainExtractingServerList。其目的是不使用AWS AMI元數(shù)據(jù)(這就是Netflix所依賴的)使元數(shù)據(jù)可用于負(fù)載均衡器。默認(rèn)情況下,服務(wù)器列表是使用實例元數(shù)據(jù)中提供的zone信息構(gòu)建的(因此,在遠(yuǎn)程客戶端上,設(shè)置為eureka.instance.metadataMap.zone)。如果缺少該字段,并且設(shè)置了approximateZoneFromHostname標(biāo)志,則它可以使用服務(wù)器主機名中的域名作為該區(qū)域的代理。一旦區(qū)域信息可用,就可以在ServerListFilter中使用它。默認(rèn)情況下,它用于在與客戶端相同的區(qū)域中定位服務(wù)器,因為默認(rèn)值為ZonePreferenceServerListFilter。默認(rèn)情況下,以與遠(yuǎn)程實例相同的方式(即通過eureka.instance.metadataMap.zone)確定客戶端的區(qū)域。

設(shè)置客戶端區(qū)域的傳統(tǒng)“ archaius ”方法是通過名為“ @zone”的配置屬性。如果可用,Spring Cloud優(yōu)先于所有其他設(shè)置使用該設(shè)置(請注意,該鍵必須在YAML配置中用引號引起來)。

如果沒有其他區(qū)域數(shù)據(jù)源,則根據(jù)客戶端配置(而不是實例配置)進(jìn)行猜測。我們?nèi)?code>eureka.client.availabilityZones(這是從區(qū)域名稱到區(qū)域列表的映射),然后為實例自己的區(qū)域拉出第一個區(qū)域(即eureka.client.region,其默認(rèn)值為“ us-east-1” ”,以與本機Netflix兼容)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號