四层和七层负载均衡「7层负载和4层负载」
最近在做一个项目的网络迁移,发现大家对四层、七层负载均衡不是特别了解,分不清应该是选择四层还是七层负载,所以整理了此篇文章以供参考。在介绍负载均衡之前,我们需要先了解一下OSI参考模型。
什么是OSI参考模型(Open System Interconnection),即开放式系统互联。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。
什么是负载均衡负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
负载均衡分类根据负载均衡所作用在OSI模型的位置不同,负载均衡可以大概分为二层、三层、四层和七层四大类,在实际应用中,常用的就是四层负载均衡及七层负载均衡。
①二层负载均衡
根据OSI模型分的二层负载,一般是用虚拟MAC地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。
②三层负载均衡
一般采用虚拟IP地址方式,外部对虚拟的IP地址请求,负载均衡接收后分配后端实际的IP地址响应。
③四层负载均衡
四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息(IP 端口号)将流量转发到应用服务器。
④七层负载均衡
七层负载均衡工作在OSI模型的应用层,除了根据IP 端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。
四层负载与七层负载优缺点四层优缺点:四层更快,在内核空间处理,不用走用户空间,需要解析得更少。
七层优缺点:七层功能更多,经内核空间,进入用户控件的应用进程进行转发。可以实现更复杂的负载均衡控制,比如基于URL、Session、动静分离等。
现在的七层负载均衡,主要还是要着重于应用广泛的HTTP协议,所以它的应用范围主要是众多的网站或者内部信息平台等基于B/S开发的系统。四层负载均衡则对应其他TCP应用,例如基于C/S开发的ERP等系统。
常用负载均衡工具Nginx/LVS/Haproxy是目前使用最广泛的三种负载均衡软件。
①LVS:Linux Virtual Server,也就是Linux虚拟服务器,使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。LVS主要用来做四层负载均衡。
②Nginx:是一个 Web 服务器和反向代理服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。Nginx主要用来做七层负载均衡。
③HAProxy:是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。Haproxy主要用来做七层负载均衡。
负载均衡常用算法轮询(Round Robin):循环将请求分配到后端服务器。当其中某个服务器发生故障时,就把其从循环队列中拿出,不参与分配,直到其恢复正常。比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生故障时,就把其从队列中拿出,不参与分配,直到其恢复正常。优先权(Priority):给所有服务器定义优先权,请求分配给优先级最高的服务器组。当最高优先级中所有服务器出现故障,才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。最少连接方式(Least Connection):将请求分配给那些进行最少连接处理的服务器。当其中某个服务器发生故障时,就把其从服务器队列中拿出,不参与请求的分配, 直到其恢复正常。最快模式(Fastest):传递连接给响应最快的服务器。当其中某个服务器发生故障时,就把其从服务器队列中拿出,不参与请求的分配,直到其恢复正常。观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生故障时,就把其从服务器队列中拿出,不参与请求的分配,直到其恢复正常。预测模式(Predictive):利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。动态性能分配(Dynamic Ratio-APM):收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。动态服务器补充(Dynamic Server Act.):当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。服务质量(QoS):按不同的优先级对数据流进行分配。服务类型(ToS):按不同的服务类型(在Type of Field中标识)负载均衡对数据流进行分配。规则模式:针对不同的数据流设置导向规则,用户可自行。