Ribbon是什么
Ribbon是Netflix公司开发的组件,是一种客户端负载均衡的组件。
Ribbon的原理
负载均衡概述
负责均衡是大型网络系统必须实现的功能之一,主要原因为以下4点:
降低单机压力
高可用和高性能
可伸缩性
请求过滤
Ribbon的基础概念
Ribbon主要做的事情是,根据负载均衡策略(IRule),负载均衡器(ILoadBanlancer)选择服务实例进行调用。
通过注解@LoadBalanced定义需要拦截的RestTemplate,LoadBalancerClient就会对其调用进行处理。
接口 | Spring Bean Name | 默认实现类 | 说明 |
---|---|---|---|
IClientConfig | ribbonClientConfig | DefaultClientConfigImpl | 客户端配置 |
IRule | ribbonRule | ZoneAvoidanceRule | 负载均衡策略 |
IPing | ribbonPing | DummyPing | 通过ping命令验证服务实例是否可用 |
ServerList<Server> | ribbonServerList | ConfigurationBasedServerList | 服务实例清单 |
ServerListFilter<Server> | ribbonServerListFilter | ZonePreferenceServerListFilter | 根据某些条件过滤后得到的服务实例清单 |
ILoadBalancer | ribbonLoadBalancer | ZoneAwareLoadBalancer | 负载均衡器,它将按某种策略来选取服务实例 |
ServerListUpdater | ribbonServerListUpdater | PollingServerListUpdater | 根据一定的策略来更新服务实例清单 |