Spring cloud ribbon配置负载均衡

18 篇文章 0 订阅
6 篇文章 0 订阅

本章先介绍ribbon实现概览,ribbon均衡策略,之后再介绍如何在配置文件里指定某个负载均衡。

一、ribbon实现概览

通过restTemplete请求一个服务service-A,在没使用ribbon之前,需要uri指定服务器地址,如http://localhost:8801/getUser。使用ribbon之后,服务器名代替地址进行访问,如http://service-A/getUser。
ribbon完成了服务器名的寻址任务。其中选择哪台服务器上的服务,是委托负载均衡策略去完成。具体流程如下图所示:
在这里插入图片描述
图中,蓝色方块为ribbon核心处理工具,包括:拦截器LoadBalancerIntersepter,负载均衡器LoadBalancer(默认ZoneAwareLoadBalance),负载均衡策略Rule(默认轮询策略),检测器Ping(默认线性遍历)

二、均衡策略介绍

负载均衡策略主要有:

随机策略RandomRule
线性轮询策略RoundRobinRule
重试策略RetryRule(基于轮询策略)
权重策略WeightedResponseTimeRule(默认定时30秒计算服务实例权重,平均响应时间越短的实例,越可能被命中)
可用过滤策略AvailabilityFilteringRule(先过滤,再轮询。过滤规则:1是否有断路故障;2并发请求数是否大于阈值,阈值默认2的32次方-1,可通过..ActiveConnetctionsLimit修改)
区域可用策略ZoneAvoidanceRule(先过滤,再轮询。先考虑区域可用,性能次之。结合Eureka,默认轮询策略会被覆盖为此策略,而且会使用到重试策略)

三、个性化配置

我们可用@RibbonClient(name=“service-A”,configuration = RibbonConfig.class)形式进行配置,其中RibbonConfig.class是ribbon的配置类。本章不就其具体介绍。
Spring Cloud 的Camden版本之后,Ribbon实现了个性化定制。我们可以在配置文件(如application.properties)中配置ribbon的拦截器、均衡策略、检测器等。

本章主要介绍均衡策略的设置,格式为:

<client>.<nameSpace>.<property>=<value>

如,设置service-A实例的负载均衡策略为随机策略RandomRule:

service-A.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值