什么是负载均衡

负载均衡

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。

简单理解
比方说,我们部署的项目放到tomcat服务器中,对于每一个请求,tomcat服务器都会起一个线程来处理请求并返回结果,每一个线程都需要分配一些内存,如果请求多了,那么内存就被占用满了,就不能再对新的请求响应了(这也是黑客攻击常常使用的手段,比如Dos,DDos,就是通过发起大量的请求占用内存使得服务器崩溃,使得服务器不能再对外提供服务)。一个tomcat大约可以同时支撑200个链接吧,已经是最大的负载量了,再超载的话,老司机都带不动了。如果还想支持更多的链接,那么只有增加服务器,将负载分摊到其他的服务器上了,但是分摊也是要有策略的,不然一台服务器忙的要死,另外一台服务器闲得蛋疼也是不行的。那么一般的分配方式是什么?就是将负载量平均的分摊到每一台服务器,就是负载均衡了。
什么是负载均衡

硬件负载均衡一般都比较贵,十几万到几十万的都有。知名的负载均衡器有 F5、Array、深信服、梭子鱼等。F5可能很多大公司都有,有多贵,自己感受一下!!!
什么是负载均衡

所以…我们一般还是用软件来做负载均衡的多。
软件负载均衡成本几乎为零,基本都是开源软件。例如,LVS、HAProxy、Nginx 等。

OSI(开放系统互联模型)
负载均衡就其所工作的 OSI(开放系统互联模型)层次,在生产应用层面分为四类:常用的

七层负载均衡 L7:应用层,基于 HTTP 协议的负载均衡,通过虚拟 URL 将请求分配到真实的服务器。Nginx 加粗样式就是 L7 负载均衡器。应用场景一般为 B/S 架构的系统。

四层负载均衡 L4:传输层,基于 TCP 协议的负载均衡,通过虚拟 IP+端口号的形式将请求分配到真实的服务器。应用场景一般为 C/S 架构的系统。LVS、F5 都是基于 L4 的负载均衡器。Nginx Plus(Nginx 商业版)提供了基于 L4 的负载均衡功能。