码迷,mamicode.com
首页 > 其他好文 > 详细

Ribbon描述

时间:2021-06-02 17:15:37      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:核心   服务端   存储   抽样   节点   实战   方式   png   com   

对于负载均衡依据介质而分可以分成硬件负载均衡和软件负载均衡,软件的负载均衡则是通过在服务器上安装负载均衡功能的模块或者软件来完成请求分发工作。

无论是硬件负载均衡还是软件的负载均衡都是通过维护一个下挂的服务器清单列表,通过心跳检测功能剔除有问题的服务器节点,保证剩余服务器节点的可访问。客户端提交访问请求到负载均衡设备时,该设备会依据某种负载均衡算法,选择一个服务器用于转发客户端请求。

可以依据可提供服务的服务器清单所存储的位置细分成客户端负载均衡和服务端负载均衡。客户端负载均衡是客户端节点自己从注册中心获取一份服务端节点的服务清单自己进行维护(如Ribbon)。服务器端负载均衡将在服务端前有一个软件自己维护服务端节点,进行负载均衡(如nginx)。

Spring Cloud Ribbon是一个基于http和TCP的客户端负载均衡工具,它是基于Netfix Ribbon实现。

 Ribbon主要有以下几个模块:

技术图片

  •  ribbon     内置的负载均衡算法
  • ribbon-core  ribbon的核心jar包,包含主要核心代码,API及部分配置内容
  • ribbon-httpclient 基于 Apache HttpClient 封装的 REST 客户端,集成了负载均衡模块,可以直接在项目中使用来调用接口
  • ribbon-loadbalancer ribbon的负载均衡模块
  • ribbon-transport  基于netty实现多协议的支持,比如HTTP,TCP 和UPD的支持

 ribbon的负载均衡策略有:

  •  RandomRule   从服务实例清单中随机选择一个服务实例的功能
  •  RoundRibbonRule  以线性轮询的方式,依次选择服务实例
  • RetryRule   对选定的负载均衡策略机上重试机制,也就是说当选定了某个策略进行请求负载时在一个配置时间段内若选择 Server 不成功,则一直尝试使用 subRule 的方式选择一个可用的 Server。
  • WeightedResponseTimeRule   根据实例的运行情况计算权重,并根据权重选择实例也就是根据响应时间分配一个 Weight(权重),响应时间越长,Weight 越小,被选中的可能性越低。
  • BestAvaliableRule  通过遍历负载均衡器中所维护的所有服务实例,会过滤掉故障的实例,并找出并发请求数最小的一个。所以此策略就是选择出最闲的一个
  • AvailablityFilteringRule  通过线性抽样的方式直接尝试寻找可用且比较闲的实例来使用
  • ZoneAvoidanceRule  使用 ZoneAvoidancePredicate 和 AvailabilityPredicate 来判断是否选择某个 Server,前一个判断判定一个 Zone 的运行性能是否可用,剔除不可用的 Zone(的所有 Server),AvailabilityPredicate 用于过滤掉连接数过多的 Server。

 

 

参考 :http://c.biancheng.net/view/5353.html

          《Spring Cloud 微服务实战》

 

   

Ribbon描述

标签:核心   服务端   存储   抽样   节点   实战   方式   png   com   

原文地址:https://www.cnblogs.com/songlove/p/14819135.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!