负载均衡,英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行。
负载均衡会对外部展现一个虚拟的服务器地址,当用户试图连接时,它会将连接通过双向网络地址转换(NAT)转到最适合的真实服务器上,以完成用户的请求。
OSI(Open System Interconnection)
网络服务与最终用户的一个接口。
协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
格式有,JPEG、ASCll、EBCDIC、加密格式等
建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
定义传输数据的协议端口号,以及流控和差错校验。
协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
进行逻辑地址寻址,实现不同网络之间的路径选择。
协议有:ICMP IGMP IP(IPV4 IPV6)
建立逻辑连接、进行硬件地址寻址、差错校验 [3] 等功能。(由底层网络定义协议)将比特组合成字节进而组合成帧,用MAC地址访问介质,错误发现但不能纠正。
建立、维护、断开物理连接。(由底层网络定义协议)
第四层负载均衡在传输层操作,根据应用端口和协议等网络信息来管理流量,但无法查看消息的实际内容。这是一种有效的基于数据包级别的负载均衡方法。由于消息既不被检查也不被解密,可以快速、高效且安全地转发。然而,由于第四层负载均衡无法根据内容做出决策,无法根据媒体类型、本地化规则或其他复杂算法来路由流量,只能使用简单的轮询算法等简单算法进行路由。
F5负载均衡产品时我们常用的网络负载控制的产品之一。
第七层负载均衡在应用层操作,使用诸如HTTP和SMTP等协议根据每个消息的实际内容做出决策。与仅仅无阅读地转发流量不同,第七层负载均衡器终止网络流量,根据需要执行解密操作,检查消息,基于内容做出路由决策,向适当的上游服务器建立新的TCP连接,并将请求写入服务器。
虽然加密的需求会对第七层处理产生性能损失,但通过使用SSL卸载功能,这可以在很大程度上减少。通过启用应用感知型网络,第七层负载均衡能够进行更智能的负载均衡决策和内容优化。通过查看或主动注入cookie,负载均衡器可以识别唯一的客户端会话,以提供服务器持久性或sticky sessions
,将所有客户端请求发送到同一台服务器以提高效率。数据包级别的可见性允许使用内容缓存,将频繁访问的项目保存在内存中以便快速检索。对于现代组织来说,第七层负载均衡提供了处理在单个连接上优化流量和减少开销的协议的智能能力。
NGINX
七层负载均衡和四层负载均衡是网络中常用的两种负载均衡技术,它们有各自的优点和缺点。
七层负载均衡(Appication Layer Load Balancing)是在应用层(第七层)上进行负载均衡的技术,它能够根据应用层协议(如 HTTP、HTTPS)中的特定信息,如URL报文头等,对请求进行分发和处理。
四层负载均衡(Transport Layer Load Balancing)是在传输层(第四层)上进行负载均衡的技术。它通过查看传输层协议(如TCP、UDP)的头部信息,将请求分发到不同的服务器。
较高的性能:四层负载均衡对传输层协议的解析相对简单,因此在处理请求时具有较高的性能和吞吐量。
简单配置:相对于七层负载均衡,四层负载均衡的配置相对简单,不需要深入理解应用层协议的细节。
较低的资源消耗:由于四层负载均衡不需要进行应用层协议解析,对负载均衡设备的资源消耗较小。
缺乏应用层信息:四层负载均衡仅关注传输层协议的信息,无法根据应用层的特征进行智能分发,可能导致请求无法最优地分配到合适的服务器。
无法处理有状态应用:四层负载均衡无法维持会话的持久性,又对于有状态的应用,可能导致请求的状态丢失或不一致。
综上所述,七层负载均衡和四层负载均衡各有其适用的场景和特点。七层负载均衡更适合复杂的应用环境,需要智能分发和处理应用层协议的场景。而四层负载均衡则更适合大规模、高吞吐量的应用用环境,对性能和简单配置有较高要求的场景。