Ribbon 和 sofa-rpc
Spring Cloud中的客户端负载均衡——Ribbon
Spring Cloud 生态:
Eureka 服务治理
Ribbon 负载均衡
Feign API调用
Hystrix 容错保护
Zuul API网关
Gateway 响应式网关
Config 配置中心
Sleuth 请求链路跟踪
这里主要基于 Soul 网关的 starter : SpringCloudPluginConfiguration
来研究一下负载均衡客户端。
目前主流的负载方案分为两种:
1.集中式负载均衡,比如 Nginx
2.客户端负载均衡,客户端根据请求情况做负载,Ribbon 就属于这一种
客户端负载均衡需要自己维护服务实例的信息,然后通过负载均衡算法,从实例中选取一个实例进行访问。这里选取 Ribbon 来研究一下,因为 soul 网关中也有用到 Ribbon。
soul网关的 starter : SpringCloudPluginConfiguration
初始化 Spring Cloud Plugin 时会指定负载均衡客户端 LoadBalancerClient
@ConditionalOnClass({
LoadBalancerClient.class, RibbonAutoConfiguration.class, DispatcherHandler.class})