ribbon的理解

什么是ribbon?

Ribbo是一个基于HTTP和TCP的客户端负载均衡器

什么是客户端负载均衡?

客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。
在客户端负载均衡中,所有的客户端节点都有一份自己要访问的服务端清单,客户端在发起请求的时候会先自行选择一个服务端,向该服务端发起请求,从而实现负载均衡

ribbon的职能主要有两个:

1、维护所有的服务实例SeverList(新增、更新、删除等)
2、当需要请求Server实例时,从SeverList中找到最合适的Server实例并返回

维护server列表

1、基于定时任务拉取服务列表方式,然后将最新的服务列表更新到ServerList之中(默认30s一次从Eureka服务端拉取)
2、基于Eureka服务事件通知的方式,来更新ServerList(例如:有新服务注册,或有服务down机,会有事件通知)

选择服务实例的流程

1、通过ServerList获取当前可用的服务实例列表

2、使用ServerListFilter过滤器过滤出符合要求的服务实例列表
    (Ribbon默认采取了区域优先的过滤策略,即从ServerList中过滤出和当前实例所在的区域(zone)一致的serverList)

3、应用Rule规则,结合服务实例的统计信息,返回满足规则的某一个服务实例
    

说明:在服务实例列表选择的过程中,有两次过滤的机会
        第一次是首先通过ServerListFilter过滤器
        另外一次是用过Rule的选择规则进行过滤
    

rule规则

1、RoundRobinRule    线性轮询
2、RandomRule    随机
3、WeightedResponseTimeRule  权重
4、BestAvailableRule 选出最空闲的实例
5、RetryRule 线性轮询重试
6、ZoneAvoidanceRule 
    计算出哪个区域的服务最差,将此zone的服务从服务列表中剔除
    再过滤掉正处于熔断状态的服务
    然后通过RoundRobinRule线性轮询的方式从列表中挑选一个服务

转载于:https://www.cnblogs.com/jis121/p/11018015.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值