负载均衡的分类及算法

2019 年 4 月 9 日 性能与架构

一、负载均衡分类

1. DNS 负载均衡

思路是 DNS 解析同一个域名时可以返回不同的IP地址。

用来实现地理级别的均衡,例如,北方用户访问北京机房、南方用户访问深圳机房。

优点:

  • 简单,成本低,直接交给DNS服务器处理即可,无需自己维护。

  • 就近访问,提升访问速度。

缺点:

  • DNS缓存时间较长,更新不及时。

  • DNS控制权在域名商那里,无法根据业务特点定制扩展。

2. 硬件负载均衡

通过单独的硬件设备实现负载均衡,典型设备例如 F5、A10。

优点:

  • 功能强大,支持各级负载均衡,支持各种负载均衡算法,支持全局负载均衡。

  • 性能强大,可以支持100万以上的并发。

  • 稳定性高。

  • 支持安全防护,除了负载均衡的功能,还有防火墙、防DDoS攻击等安全功能。

缺点:

  • 昂贵,价格几万甚至数十万。

  • 扩展能力差。

3. 软件负载均衡

通过软件实现,例如我们熟悉的 Nginx(7层负载均衡) 和 LVS(4层负载均衡)。

和硬件负载均衡相比,性能差了很多,Nginx 能支持5万/秒,而F5是百万级,但价格也便宜了很多。

优点:

  • 简单

  • 便宜

  • 灵活

缺点:

  • 性能一般

  • 没有防火墙等安全功能

负载均衡的典型架构

DNS、硬件、软件这3中方式可以组合使用,基本原则

  • DNS方式用于实现地理级别的负载均衡。

  • 硬件方式用于实现集群级别的负载均衡。

  • 软件方式用于实现机器级别的负载均衡。

二、负载均衡算法

1. 轮询

负载均衡系统接收到请求后,按照顺序轮流分配给服务器。

这种方式非常简单,只管按顺序分配,至于服务器当前负载情况、硬件能力等都不关心,只要服务器还能工作,就可以分配,除非服务器挂了。

2. 加权轮询

是轮询方式的一种改进,轮询方式是无差别分配,但实际服务器的处理能力是有差异的,所以需要区别对待。

为服务器设置权值,权值高的就多分配点。

3. 负载最低优先

将任务分配给当前负载最低的服务器。

例如 LVS 可以根据“连接数”判断服务器状态,NGINX 可以根据“HTTP请求数”来判断。

这种方式比轮询高级很多,可以感知服务器的状态了,但其复杂度也大大提高了,要收集统计服务器的负载信息。

4. 性能最优

优先将任务分配给处理速度最快的服务器,来达到最快响应客户端的目的。

此方式也是感知服务器的状态,标准是响应时间

需要收集分析服务器的响应时间,这个工作本身消耗也不小,所以采用采样的方式,不统计所有任务的响应时间,统计一个周期(例如 10秒/1分钟/5分钟)内的状态。

优缺点与 负载最低优先 相同。

5. Hash

对请求中的关键信息(如IP)进行hash计算,hash值相同的请求分配到同一台服务器,例如业务中希望同一用户的请求都由同一台服务器来处理。

小结

内容整理自《从0开始学架构》

点击👇阅读原文查看文章列表


登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
基于深度学习的手语识别综述
专知会员服务
46+阅读 · 2020年5月18日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
36+阅读 · 2020年4月26日
腾讯推荐引擎组员工:谈谈推荐系统架构
腾讯大讲堂
14+阅读 · 2019年10月23日
【边缘计算】边缘计算面临的问题
产业智能官
17+阅读 · 2019年5月31日
介绍WAF以及过滤机制
黑白之道
22+阅读 · 2019年2月5日
目标跟踪算法分类
算法与数据结构
20+阅读 · 2018年9月28日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
机器学习(36)之协同过滤典型算法概述【精华】
机器学习算法与Python学习
4+阅读 · 2018年1月20日
特征选择算法在微博业务应用中的演进历程
CSDN云计算
5+阅读 · 2017年12月22日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
Arxiv
9+阅读 · 2019年4月19日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
相关资讯
腾讯推荐引擎组员工:谈谈推荐系统架构
腾讯大讲堂
14+阅读 · 2019年10月23日
【边缘计算】边缘计算面临的问题
产业智能官
17+阅读 · 2019年5月31日
介绍WAF以及过滤机制
黑白之道
22+阅读 · 2019年2月5日
目标跟踪算法分类
算法与数据结构
20+阅读 · 2018年9月28日
推荐|机器学习中的模型评价、模型选择和算法选择!
全球人工智能
10+阅读 · 2018年2月5日
机器学习(36)之协同过滤典型算法概述【精华】
机器学习算法与Python学习
4+阅读 · 2018年1月20日
特征选择算法在微博业务应用中的演进历程
CSDN云计算
5+阅读 · 2017年12月22日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
Top
微信扫码咨询专知VIP会员