ribbon区域亲和配置一例

只需在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

原文地址:https://www.cnblogs.com/flying607/p/8303546.html