(五)SpringBoot+SpringCloud —— Ribbon负载均衡与配置

Ribbon是Netflix开源的客户端负载均衡器,支持多种内置负载均衡策略,并允许自定义算法。本文介绍Ribbon的工作原理,包括其提供的7种负载均衡器及配置选项。此外还涵盖了如何启用重试机制和配置超时时间。

负载均衡

Ribbon是Netflix 发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组 件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随即连接等)去连接这些机器。我们也很容易使用Ribbon实现 自定义的负载均衡算法。

Ribbon提供了7个自带的负载均衡器:

策略说明
BestAvailableRule选择一个最小的并发请求的服务。
AvailabilityFilteringRule过滤掉一直连接失败服务, 过滤掉那些高并发的服务( 超过配置阈值 )。
WeightedResponseTimeRule根据权重负载(基于相应时间),权重越小,被选中的可能性越低。
RetryRule在配置时间内当选择的服务调用不成功, 在选定的负载均衡策略机上重试。
RoundRobinRule按顺序轮训选择服务。
RandomRule随机选择一个服务。
ZoneAvoidanceRule对服务所在的区域和可用性,进行复杂的判断后选择一个服务。

配置简介

在引入Spring Cloud Ribbon的依赖之后,就能够自动化构建下面这些接口的实现:

  • IClientConfig:Ribbon的客户端配置;
  • IRule:负载均衡策略;
  • IPing:实例检查策略;
  • ServerList:服务实例清单维护策略;
  • ServerListFilter:服务实例清单过滤策略;
  • ILoadBalancer:负载均衡器策略;

参数配置

对于Ribbon的参数配置分为局部和全局两种:

全局:ribbon.<key>=<value>;

局部:<服务签名>.ribbon.<key>=<value>;

重试机制

  • spring.cloud.loadbalancer.retry.enable:开启重试;
  • ribbon.ConnectTimeout:请求连接的超时时间;
  • ribbon.ReadTimeout:请求处理的超时时间;
  • ribbon.OkToRetryOnAllOperations:对所有操作请求都重试;
  • ribbon.MaxAutoRetriesNextServer:切换实例的重试次数;
  • ribbon.MaxAutoRetries:对当前实例的重试次数;

Github:https://github.com/XuePeng87/owl-bookstore

转载于:https://my.oschina.net/u/2450666/blog/1475635

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值