只需在springboot的配置文件中添加以下內容即可:
eureka.instance.metadata-map.zone=left
該配置是一個eureka客戶端的配置,並且該客戶端使用了ribbon。
配置只是標記了該服務在注冊中心的zone,當該服務調用其它服務時,ribbon默認會優先從zone相同的服務中選擇被調用對象。
————————————————以下內容都是廢話,看官不必理會————————————
關於region,我曾以為ribbon會優先在同region下找相同zone的服務,經過測試(通過eureka.client.region配置了服務的region),發現region沒什么用,不管你的region是否一樣,區域親和只和zone有關。
在ribbon中只看到一個地方用到了region:
org.springframework.cloud.netflix.ribbon.eureka.EurekaRibbonClientConfiguration
也就是說在配置了 eureka.client.region 並且沒有配置 eureka.instance.metadata-map.zone 的情況下:
才會用region去查詢availabilityZones中的內容,並且拿出第一個value,當成當前服務的zone,如上圖這個配置,最后ribbon會把當前服務的zone設為left
尷尬的是,這有什么用呢???在下才疏學淺,不能領會其真諦,待日后有機會再說吧(算了吧)。。。
測試使用的版本:Dalston.SR1