1.负载均衡Ribbon
当使用Eureka 作为注册中心的时候 Eureka 里面已经默认集成了 Ribbon 了(还是 用Feign 集成了的) 我们只需要通过服务名 就可以直接访问了。就是根据LoadBalancerInterceptor
,这个类会在对请求进行拦截,然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。
继续跟入execute方法
发现这里有一个获取服务的方法 继续跟进
这里有一个rule 他在构造的时候进行了初始化 是一个 IRule 接口下面的 RoundRobinRule
在 iRule 下面有好多算法 轮询只是其中的一种
我们可以再yml 中配置这种算法, 这里指定一个随机算法
you-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule