引言
本文简要介绍负载均衡的一些基本概念、原理和工具,供大家参考。若有实际需求,可进一步查找资料详细了解。本文参考资料:
- 书籍:《阿里云运维架构实践秘籍》乔锐杰著
- 博文:https://www.cnblogs.com/Javi/p/6483214.html
- 官网:LVS: http://www.linuxvirtualserver.org/Documents.html
- 官网:Nginx: https://www.nginx.com/
- 论文:http://www.linuxvirtualserver.org/ols/lvs.pdf
- 博文:https://www.zhihu.com/topic/19607051/hot
分类
负载均衡根据网络分层可以分为几个类型:
- 硬件负载均衡:主要在交换机等网络设备上实施,通过硬件对网络数据包进行分流和转发,产品有Citrix Netscaler和F5。
- 二层负载均衡:在数据链路层修改数据包,只有 LVS(Linux Virtual Server) 支持二层负载均衡。
- 三层负载均衡:在IP数据包外层添加新的IP数据头,只有LVS支持三层负载均衡。
- 四层负载均衡:根据IP和端口对TCP数据包进行转发,Nginx和HAProxy为主流应用。
- 七层负载均衡:主要通过HTTP协议的数据包进行转发,依据有域名、目录结构,甚至是浏览器类型,Nginx也支持七层负载均衡。
- DNS负载均衡:将域名匹配多个IP地址,不同客户端返回不同地址,从而实现均衡。该策略使用不多,一个原因是客户端基本都有缓存,使得策略不能生效。
下面就LVS和Nginx的负载均衡实践作简要介绍