SpringCloud-Ribbon

Ribbon是Netflix提供的客户端负载均衡器,用于在微服务架构中分发请求。它实现了多种负载均衡策略,如轮询、随机、重试等。与Nginx不同,Ribbon在本地缓存服务列表并执行负载均衡,减少了网络延迟。本文深入探讨Ribbon的负载算法,包括轮询、随机、基于响应时间的权重分配和故障转移等策略。
摘要由CSDN通过智能技术生成

1.认识Ribbon

是什么

基于Netflix Ribbon 实现的一套客户端负载均衡的工具

主要功能是提供客户端软件的负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置如连接超时,重试。

在配置文件中列出LoadBalancer后面的所有的机器,Ribbon会自动的帮你基于某种规则如:轮询,随机连接去连接这些机器。我们很同意使用Ribbon实现自定义的负载均衡算法

能干嘛

LoadBalance 是什么

即将用户的请求平摊的分配到多个服务上,从而达到系统的高可用
常见的负载均衡软件有Nginx,LVS

Ribbon和Niginx的区别

Nginx是服务器负载均衡,客户端所有的请求都会将给nginx,然后由nginx实现转发请求。即负载均衡是由服务端实现的。

Ribbon本地负载均衡,在调用微服务接口时,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而实现RPC远程调用

2.Ribbon中的负载算法

loadbalancer.RoundRobinRule
轮询算法,即依次遍历整个服务器列表,将请求的压力平摊到每个服务器上

loadbalancer.RandomRule
随机算法,随机生成一个数字,通过数字映射服务器,将请求发送到对应的服务器上

loadbalancer.RetryRule
先安装RoundRobinRule的策略获取服务,如果获取服务是被则在指定的时间会进行重试获取可用的服务。

WeightedResponseTimeRule
对RoundRobinRule的拓展,响应速度越快的实例选择权重越大,越容易被选择

BestAvailableRule
优先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务

AvailabilityFilteringRule
先过滤掉故障实例,再选择并发量较小的实例

ZoneAvoidanceRule
默认规则,复合判断server所在区域的性能和server的可用性选择服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值