负载均衡四层跟七层的区别
Posted 峰啊疯了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡四层跟七层的区别相关的知识,希望对你有一定的参考价值。
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开发的系统。
以上是关于负载均衡四层跟七层的区别的主要内容,如果未能解决你的问题,请参考以下文章