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