负载均衡四层跟七层的区别

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述负载均衡四层跟七层的区别相关的知识,希望能为你提供帮助。
1.什么是负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展??网络设备???和??服务器???的带宽、增加??吞吐量??、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web??服务器???、??FTP服务器???、??企业??关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

详见:??负载均衡??
2.四层负载均衡
2.1简介【负载均衡四层跟七层的区别】?四层网络??负载均衡???是基于IP和端口做的转发。通过虚拟的IP和端口接收到请求后,然后分配到真实的服务器,K8s中的endpoint就是基于四层网络负载均衡实现?
?四层网络负载:一般是在对于后台的服务器进行负载均衡的时候,根据IP地址和端口号以及一些负载均衡设备(例如LVS、F5)来决定那些流量需要做负载均衡,对需要处理的流量进行转发,记录下TCP/UDP的流量通过哪一台服务器处理,后续的同一链接的流量都可以转发到当前的服务器。?
?四层交换机主要分析 IP 层及 TCP/UDP 层,实现四层流量负载均衡。 七层交换机除了支持四层负载均衡以外,还有分析应用层的信息,如 HTTP 协议 URI 或 Cookie 信息。?

2.2实现

  • F5:硬件负载均衡器,功能很好,但是成本很高。
  • lvs:重量级的四层负载软件
  • nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活
  • haproxy:模拟四层转发,较灵活
3.七层负载均衡器
3.1简介?七层网络负载均衡是基于URL等??应用层???信息作的转发。通过虚拟的URL或者主机名接收到请求,然后在分配给真实的服务器。K8s中的ingress就是基于七层网络负载均衡实现。?
?七层网络负载均衡(“内容交换”):在四层的基础上,加上了应用层、表示层、会话层。同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。主要是通过报文中的有意义的应用层数据,在加上负载均衡设备配置的策略进行内部服务器的选择。?
如果你的 Web 服务器分成两组,一组是中文语言的,一组是英文语言的, 那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
举个例子,七层网络模型中,客户端和服务器建立连接,只有完成TCP三次握手后,才能接受到客户端发送的真正应用层的报文数据,然后在根据报文中某些特定的字段数据,进行内部服务器的选择和过滤。 在七层网络模型中,负载均衡设备更多的充当于代理服务器的作用,负载均衡设备与客户端、后段的服务器分别建立TCP链接。

3.2实现
  • haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
  • nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
  • apache:功能较差
  • mysql proxy:功能尚可。
4.总结
?现在的7层负载均衡,主要还是着重于应用HTTP协议,所以其应用范围主要是众多的网站或者各种基于B/S开发的应用系统。 4层负载均衡则对应其他TCP/UDP应用,经常用于C/S开发的系统。?



    推荐阅读