原文网址:Spring Cloud LoadBalancer--默认的负载均衡策略_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍Spring Cloud LoadBalancer是如何确定默认负载均衡策略的。

相关网址

Spring Cloud LoadBalancer--负载均衡的原理(源码分析)_IT利刃出鞘的博客-CSDN博客

粉丝福利:有很多粉丝私信问我有没有面试及PDF书籍等资料,我把它们进行了整理,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱。资料可以从这里免费获取:资料地址

入口

此文已经分析过,是通过LoadBalancerClientFactory#getInstance(String serviceId)来获取负载均衡策略的。而且,其默认负载均衡策略是:RoundRobinLoadBalancer(轮询策略)

最终是获得ReactorServiceInstanceLoadBalancer.class类型的bean

ReactorServiceInstanceLoadBalancer接口

可以看到,ReactorServiceInstanceLoadBalancer接口有两个实现类,直接看:RoundRobinLoadBalancer。

LoadBalancer的配置类

Ctrl+鼠标左键,点击RoundRobinLoadBalancer,可以找到其配置类:

所以,默认会使用RoundRobinLoadBalancer(轮询策略)。

因为它上边有注解:@ConditionalOnMissingBean,含义是:没有这个Bean时则使用此Bean。

这也意味着,我们可以自定义策略,实现ReactorServiceInstanceLoadBalancer接口,然后注册到容器当中,这样就会用我们自定义的策略。

更多推荐

Spring Cloud LoadBalancer--默认的负载均衡策略