SpringCloud之Ribbon

负载均衡

负载均衡可以改善跨计算机,集群的计算资源的工作负载分布,负载平衡旨在优化资源使用,最大化吞吐量最小化响应时间并避免任何单一资源的过载。

Ribbon

Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。

Ribbon负载均衡策略
  • 随机策略
  • 轮训策略,默认策略。
  • 重试策略,在一个配置时间段内,当选择的Server不成功,则尝试选择一个可用的Server。
  • BestAvailableRule最低并发策略,逐个考察Server,如果Server的断路器打开,则忽略,选择并发连接最低的Server。
  • valiabilityFilteringRule可用过滤策略,过滤掉一直失败并被标记为circuit trepped的Server,过滤掉高并发连接的Server。
  • ResponseTimeWeightedRule响应时间加权策略 根据Server响应时间分配权重,响应时间越长,权重越低,被选择的概率也越低。
  • oneAvoidanceRule区域加权策略,根据Server所在区域的性能和Server的可用性,轮训选择Server并判断一个Zone的运行性能是否可用,剔除不可用Zone中的所有Server。
Ribbon核心类
  • IClientConfig,配置Ribbon客户端的相关属性。
  • ServerListUpdater,动态更新服务器列表。
  • ServerList,获取服务器列表。
  • ServerListFilter,服务器列表过滤器。
  • IPing, 检查服务器状态。
  • IRule,负载均衡选择器。
  • ILoadBalancer,负载均衡总控制器。
Ribbon和Fegin的区别
  • 启动类使用的注解不同,Ribbon使用@RibbonCLient,Feign使用@EnableFeignClients
  • 服务的指定位置不同,Ribbon在@RibbonClient注解上声明,Fegin在定义抽象方法的接口中使用@FeignClient声明。
  • 调用方式不同,Ribbon需要自己构建HTTP请求,模拟HTTP请求然后使用RestTemplate发送给其他服务,Feign使用代理对象的方法调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值