springCloudRibbon负载均衡服务调用
springCloudRibbon负载均衡服务调用
文章目录
1、介绍
- springCloudRibbon是基于NetflixRibbon(已不在更新)实现的一套客户端,实现负载均衡的工具。
- 简单的说,
Ribbon
是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用
。Ribbon客户端组件提供一系列完善的配置项,如连接超时,重试等。简单的说就是在配置文件中列出Load Balancer后面的所有及其,Ribbon会自动的帮助你基于某种规则(如简单查询,随机连接等)去连接这些机器。Ribbon帮助你可以很简单的实现自定义的负载均衡的算法。
2、更新与代替。
- Ribbon进入维护模式
- spring预期采用springCloud Ribbon来取代
3、load Balance负载均衡。
3.1工作步骤
- 选择注册中心
- 根据用户指定的
策略(轮询、随机)
,在从server中取到的服务注册列表中选择一个地址。
4、Ribbon导入(在2.0之后的版本默认自带ribbon实现负载均衡)
5、Ribbon自带的负载规则(IRule接口)
- 轮询
- com.netflix.loadbalancer.RoundRobinRule
- 随机
- com.netflix.loadbalancer.RandomRule
- 重试(先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试)
- com.netflix.loadbalancer.RetryRule
- 扩展(对RoundRobinRule的扩展,响应速度越快的实例选择权重越大,越容易被选择)
- WeightedResponseTimeRule
- 过滤(服务)(会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务)
- BestAvailableRule
- 过滤实例(先过滤掉故障实例,再选择并发较小的实例)
- AvailabilityFilteringRule
- 默认规则(默认规则,复合判断server所在区域的性能和server的可用性选择服务器)
- ZoneAvoidanceRule
6、如何替换访问规则
- 注意包的目录结构
- 创建配置类
- 修改主启动类
7、Ribbon默认轮询算法分析
- 算法原理
-
RoundRobinRule源码分析