Ribbon的源码解析查看这篇博客https://blog.csdn.net/forezp/article/details/74820899
什么是Ribbon
Ribbon是Netflix公司开源的一款客户端负载均衡器,运行在客户端,可以控制HTTP和TCP的一些行为,为我们提供了很多负载均衡的算法,例如轮询,随机等,并且可以在客户端自定义算法,简单说有a、b、c三个服务要调用d服务,a、b、c三个服务的负载均衡就是由ribbon来实现的
Ribbon的作用
服务的发现:通过实例的名称查找服务
服务的选择规则:从服务列表中选择自己需要的服务
服务的监听:剔除无效的服务
实现Ribbon的三个主要的组件
serverList,IRule,serverListFilter
通过serverList获取所有的服务列表,通过serverListFilter过滤掉不需要的服务,通过IRule获取目标服务
对Ribbon源码解析的总结
Ribbon的负载均衡是通过LoadBalancerClient实现的,LoadBalancerClient具体是由ILoadBalancer实现的,ILoadBalancer通过配置IRule,IPing等信息,从eurekaclient获取服务注册列表,并且每10s一次向eurekaclient发送“ping”,检查服务注册列表是否更新,最后,获取服务注册列表,ILoadBalancer通过IRule的策略进行负载均衡