本系列文章是把作者学习web中间件时候的实操记录分享出来,内容主要包括web中间件入门的一些理论概念知识、场景应用、程序部署,希望能够帮到一些初学者,少走一些弯路。
什么是负载均衡?
负载均衡#、#硬负载#、#软负载#、#什么是负载均衡#、#负载均衡的概念#、#负载均衡的实现方式#、#高可用#、#四层、七层负载均衡的区别#
1.负载均衡的概念
负载均衡的核心目标是实现高可用,即高并发、容灾等。
负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,如FTP服务器、Web服务器、应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
2.二层、三层、四层、七层负载均衡的区别
PS:负载均衡中所谓的层指的是OSI体系中的分层,OSI模型共有七层,从下到上分别是物理层、数据链路层、网络层、运输层、会话层、表示层和应用层。
1)二层负载均衡(mac)
二层负载均衡又称为数据链路层负载均衡。主要的实现方式就是PPP捆绑和链路聚合技术。一般是用虚拟mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
2)三层负载均衡(ip)
三层负载均衡也就是网络层的负载均衡,需要用到网络层的协议,如OSPF协议,RIP协议等。一般采用虚拟IP地址方式,外部对虚拟的ip地址请求,负载均衡接收后分配后端实际的IP地址响应。
3)四层负载均衡(tcp)
四层就是基于IP+端口的负载均衡,是在三次负载均衡的基础上,即从第四层"传输层"开始,使用"ip+port"接收请求,再转发到对应的机器。七层负载均衡器也称作七层交换机,即L4 switch(四层交换),在OSI第4层工作,此种Load Balance不理解应用协议(如HTTP/FTP/MySQL等等)。如:LVS、F5、深信服AD等。
4)七层负载均衡(http)
七层就是基于URL等应用层信息的负载均衡。从第七层"应用层"开始,根据虚拟的url或IP,主机名接收请求,再转向相应的处理服务器。七层负载均衡器也称作七层交换机,即L7 switch(七层交换),OSI的最高层,应用层。此时,该Load Balancer能理解应用协议。如:HAProxy、Nginx等。
工作中最常见的是四层和七层负载均衡。
3.其他负载均衡概念
这里解释下其他表达的负载均衡概念,如:DNS域名解析负载均衡、数据链路层负载均衡、IP负载均衡、HTTP重定向负载均衡、反向代理负载均衡。
(1)DNS域名解析负载均衡
利用DNS解析到多个地址实现负载均衡。
大型网站使用较多。
优点是将负载均衡工作交给DNS,省略掉了负载均衡器网络管理和配置的麻烦;为用户选择最近的服务器,提高访问速度。缺点就是DNS缓存,修改DNS可能会较长时间才生效;控制权在DNS服务商,系统本身能做的控制非常有限。但实际上,大型网站喜欢使用DNS域名解析作为一级负载均衡,然后再在内部用其他手段做二级负载均衡。
(2)数据链路层负载均衡
数据链路层负载均衡即二层负载,在数据链路层(OSI模型的第二层)修改mac地址进行负载均衡。
(3)IP负载均衡
IP负载均衡即三层负载,通过在网络层(OSI模型的第三层)修改请求目标地址进行负载均衡。
(4)HTTP重定向负载均衡
利用HTTP重定向协议实现负载均衡。
不推荐使用。
优点是配置简单。缺点是需要请求两次服务器才能完成一次访问,性能较差;无法保证用户一直从主页进入站点,用户可以直接收藏一个具体地址跳过负载调度。
(5)反向代理负载均衡
利用反向代理服务器进行负载均衡。反向代理服务器核心工作是转发HTTP请求,它工作在HTTP层面,也就是OSI模型七层结构中的应用层(第七层),所以反向代理负载均衡也称为七层负载均衡。
IT小胖豆:初学者踩坑之路及过程分享,希望能够帮到一些初学者,欢迎各位IT打工人,入坑讨论-_-