SpringCloud之Ribbon

6 篇文章 0 订阅
4 篇文章 0 订阅
Ribbon是Netflix提供的一个客户端负载均衡器,用于控制HTTP和TCP客户端的行为。它通过IRule接口定义了多种负载均衡策略,如轮询、随机等。默认策略是ZoneAvoidanceRule,结合区域可用性和服务器性能进行选择。要自定义策略,可以通过配置类或YAML文件设定。此外,Ribbon支持饥饿加载,可在项目启动时预创建LoadBalanceClient以减少首次访问延迟。
摘要由CSDN通过智能技术生成

1、Ribbon简介

Ribbon是一种客户端的负载平衡器,可让您对HTTP和TCP客户端的行为进行大量控制。Ribbon是提供客户端
负载均衡 的工具,其主要功能就是提供负载均衡算法和服务调用。




2、Ribbon负载均衡的规则

Ribbon负载均衡规则是通过一个叫做 IRule 的接口来定义的,其每一个子接口都是一种规则,一共有七种负载均衡的规则:

负载均衡规则类描述
RoundRobinRule轮询
RandomRule随机
AvailabilityFilteringRule过滤掉多次访问故障的服务,以及并发连接数超过阈值的服务,剩下的服务通过轮询策略访问
WeightedResponseTimeRule为每一个服务器赋予一个权重值,服务器响应时间越长,器权重值越小。会随机选择服务器,权重值会影响到服务器的选择
ZoneAvoidanceRule根据区域可用的服务器为基础进行选择。使用Zone对服务器进行分类,再对Zone内多个服务做轮询
BestAvailableRule过滤掉多次访问故障的服务,并选择一个并发量小的服务
RetryRule先按照轮询选择,如果选择的服务不能访问,则会进行重试,选择其他可用的服务

1.Ribbon默认的负载均衡策略 ZoneAvoidanceRule



2.自定义负载均衡策略


方式一:在配置类中自定义一个新的IRule

@Bean
public IRule randomRule(){
     return new RoundRobinRule(); //轮询策略
}

方式二:配置application.yml

userservice:
  ribbon:
    NFLoadBanlancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule #轮询策略
注:如果想使用其他的负载均衡策略,只需修改 NFLoadBalancerRuleClassName :后面的值即可,例如:**com.netflix.loadbalancer.RandomRule** 轮询策略



3、Ribbon的饥饿加载

Ribbon默认采用的是懒加载:即第一次访问才会去创建LoadBalanceClient,请求时间会很长。
饥饿加载:则会在项目启动时创建,降低第一次访问的耗时。


application.yml中配置如下:

ribbon:
  eager-load:
    enabled: true # 开启饥饿加载
    clients:   #指定饥饿加载的服务名称
      - userservice 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

springboot大神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值