Netflix源码解析之Ribbon:Ribbon的区域亲和性(Zone Affinity)

前面文章介绍了通过ribbon集成eurekaclient来获取注册的服务列表。
其实仔细观察DynamicServerListLoadBalancer更新server的方法updateListOfServers会发现,在动态的从erueka 获取注册服务器后,还会用一个filter对得到的server列表再进行过滤。这个filter从配置获取,如果没有,默认是ZoneAffinityServerListFilter。根据配置会选择和服务消费者在一个zone的服务(术语区域感知,Zone Affinity),这样一般可以降低延迟。

 

检查server的zone属性,只是选择本区域的server。

根据配置会选择和服务消费者在一个zone的服务(术语区域感知,Zone Affinity),这样一般可以降低延迟

判断是否开启这个区域感知,有一段逻辑。如果过滤后的后端服务器忙,则停止区域感知。即基于实时的服务器运行状况,决定是否只选择本区域的server。当本区域故障时,可以快速的切换。

 

完。

 

原创文章。为了维护文章的版本一致、最新、可追溯,转载请注明: 转载自idouba

本文链接地址: Netflix源码解析之Ribbon:Ribbon的区域亲和性(Zone Affinity)


, , ,

No comments yet.

发表评论