四、Netflix Ribbon

四、Netflix Ribbon

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

    Ribbon属于进程内负载均衡,它只是一个类库,集成于服务消费方进程,消费方通过它来获取到服务提供方的地址。

    1、负载均衡的分类

        负载均衡一共分为两种,其一是服务器端负载均衡;其二是客户端负载均衡。

        (1)、服务器端负载均衡

            提供服务器端负载均衡的工具有很多,比如说Apache、Nginx、HAProxy等都实现了基于HTTP协议或TCP协议的负载均衡模块。基于服务器端的负载均衡机制实现比较简单,只需要在客户端与各个微服务实例之间架设集中式的负载均衡器即可。负载均衡器与各个微服务实例之间需要实现服务诊断以及状态监控,通过动态获取各个微服务的运行时信息决定负载均衡的目标服务。如果负载均衡器检测到某个服务不可用时就会自动移除该服务。负载均衡器运行在一台独立的服务器上并充当代理(Proxy)的作用。所有的请求都需要通过负载均衡器的转发才能实现服务调用,这可能会是一个问题,因为当服务请求量越来越大时,负载均衡器将会成为系统的瓶颈。

        (2)、客户端负载均衡

            客户端负载均衡的主要优势在于其不会出现集中式负载均衡所产生的性能瓶颈问题,因为每个客户端都有自己的负载均衡器,该负载均衡器的失败不会造成严重的后果。由于所有运行时信息都需要在多个负载均衡器之间进行传递,因而客户端负载均衡器会在一定程度上加重网络流量负载。客户端负载均衡是在客户端内部设定一个调度算法,通过收集各个微服务的实例信息,在向服务器发起请求时,先执行调度算法计算出目标服务器地址,然后通过负载均衡计算出目标服务器地址实现负载均衡效果。

    2、Ribbon负载均衡策略 

策略类

命名

说明

RandomRule

随机策略

随机选择Server

RoundRobinRule

轮询策略

按顺序循环选择Server(默认策略)

RetryRule

重试策略

在一个配置时问段内当选择Server不成功,则一直尝试选择一个可用的Server

BestAvailableRule

最低并发策略

逐个考察Server,如果Server断路器打开,则忽略,再选择其中并发连接最低的Server

AvailabilityFilteringRule

可用过滤策略

过滤掉一直连接失败并被标记为circuit tripped的Server,过滤掉那些高并发连接的Server(active connections 超过配置的网值)

ResponseTimeWeightedRule

响应时间加权策略

根据Server的响应时间分配权重。响应时间越长,权重越低,被选择到的概率就越低;响应时间越短,权重越高,被选择到的概率就越高。这个策略很贴切,综合了各种因素,如:网络、磁盘、IO等,这些因素直接影响着响应时间

ZoneAvoidanceRule

区域权衡策略

综合判断Server所在区域的性能和Server的可用性轮询选择Server,并且判定一个AWS Zone的运行性能是否可用,剔除不可用的Zone中的所有Server

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值