高并发系统设计学习笔记(二十四) 负载均衡怎样提升系统的横向扩展能力

目录

一、负载均衡服务器的种类

1.代理类的负载均衡服务

2.客户端的负载均衡服务

二、常见的负载均衡策略有哪些

1.静态策略

2.动态策略


一、负载均衡服务器的种类

负载均衡的含义: 将负载(访问的请求)“均衡”地分配到多个处理节点上。这样可以减少单个处理节点的请求量,提升整体系统的性能

 负载均衡服务器作为流量入口,可以对请求方屏蔽服务节点的部署细节,实现对于业务方无感知的扩容。它就像交通警察,不断地疏散交通,将汽车引入合适的道路上

1.代理类的负载均衡服务

代理类的负载均衡服务以单独的服务方式部署,所有的请求都要先经过负载均衡服务,在负载均衡服务中选出一个合适的服务节点后,再由负载均衡服务调用这个服务节点来实现流量的分发

由于这类服务需要承担全量的请求,所以对于性能的要求极高。代理类的负载均衡服务有很多开源实现,比较著名的有LVSNginx等等

2.客户端的负载均衡服务

客户端负载均衡服务,也就是把负载均衡的服务内嵌在RPC客户端

它一般和客户端应用部署在一个进程中,提供多种选择节点的策略,最终为客户端应用提供一个最佳的、可用的服务端节点。这类服务一般会结合注册中心来使用,注册中心提供服务节点的完整列表,客户端拿到列表之后使用负载均衡服务的策略选取一个合适的节点,然后将请求发到这个节点上。 


二、常见的负载均衡策略有哪些

负载均衡策略从大体上来看可以分为两类

  • 一类是静态策略,也就是说负载均衡服务器在选择服务节点时,不会参考后端服务的实际运行的状态
  • 一类是动态策略,也就是说负载均衡服务器会依据后端服务的一些负载特性,来决定要选择哪一个服务节点

1.静态策略

  • 轮询的策略(RoundRobin,RR)
  • 带有权重轮询策略
  • Nginx提供了ip_hashurl_hash算法;
  • LVS提供了按照请求的源地址和目的地址做Hash的策略;
  • Dubbo也提供了随机选取策略以及一致性Hash的策略

2.动态策略

  • Dubbo提供的LeastAcive策略,就是优先选择活跃连接数最少的服务
  • Spring Cloud全家桶中的Ribbon提供了WeightedResponseTimeRule使用响应时间给每个服务节点计算一个权重,然后依据这个权重,来给调用方分配服务节点

这些策略的思考点 是从调用方的角度出发,选择负载最小、资源最空闲的服务来调用,以期望能得到更高的服务调用性能,也就能最大化地使用服务器的空闲资源,请求也会响应得更迅速所以在实际开发中,优先考虑使用动态的策略 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值