Ribbon是Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务链接在一块儿。Ribbon客户端组 件提供一系列完善的配置项如链接超时,重试等。简单的说,就是在配置文件中列出Load Balancer后面全部的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即链接等)去链接这些机器。咱们也很容易使用Ribbon实现 自定义的负载均衡算法。git
Ribbon提供了7个自带的负载均衡器:github
策略 | 说明 |
BestAvailableRule | 选择一个最小的并发请求的服务。 |
AvailabilityFilteringRule | 过滤掉一直链接失败服务, 过滤掉那些高并发的服务( 超过配置阈值 )。 |
WeightedResponseTimeRule | 根据权重负载(基于相应时间),权重越小,被选中的可能性越低。 |
RetryRule | 在配置时间内当选择的服务调用不成功, 在选定的负载均衡策略机上重试。 |
RoundRobinRule | 按顺序轮训选择服务。 |
RandomRule | 随机选择一个服务。 |
ZoneAvoidanceRule | 对服务所在的区域和可用性,进行复杂的判断后选择一个服务。 |
在引入Spring Cloud Ribbon的依赖以后,就可以自动化构建下面这些接口的实现:算法
对于Ribbon的参数配置分为局部和全局两种:spring
全局:ribbon.<key>=<value>;并发
局部:<服务签名>.ribbon.<key>=<value>;负载均衡