Ribbon 负载均衡 源码分析

1.负载均衡Ribbon

当使用Eureka 作为注册中心的时候 Eureka 里面已经默认集成了 Ribbon 了(还是 用Feign 集成了的) 我们只需要通过服务名 就可以直接访问了。就是根据LoadBalancerInterceptor,这个类会在对请求进行拦截,然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。

在这里插入图片描述
继续跟入execute方法
在这里插入图片描述
发现这里有一个获取服务的方法 继续跟进
在这里插入图片描述
这里有一个rule 他在构造的时候进行了初始化 是一个 IRule 接口下面的 RoundRobinRule

在这里插入图片描述在这里插入图片描述
在 iRule 下面有好多算法 轮询只是其中的一种
在这里插入图片描述

我们可以再yml 中配置这种算法, 这里指定一个随机算法

you-service:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

猜你喜欢

转载自blog.csdn.net/hgdzw/article/details/106809206