四层网络负载均衡是基于IP和端口做的转发。通过虚拟的IP和端口接收到请求后,然后分配到真实的服务器,K8s中的endpoint就是基于四层网络负载均衡实现。
七层网络负载均衡是基于URL等应用层信息作的转发。通过虚拟的URL或者主机名接收到请求,然后在分配给真实的服务器。K8s中的ingress就是基于七层网络负载均衡实现。

四层网络负载均衡和七层网络负载均衡有什么区别呢?
四层网络负载:一般是在对于后台的服务器进行负载均衡的时候,根据IP地址和端口号以及一些负载均衡设备(例如LVS、F5)来决定那些流量需要做负载均衡,对需要处理的流量进行转发,记录下TCP/UDP的流量通过哪一台服务器处理,后续的同一链接的流量都可以转发到当前的服务器。
举个例子:负载均衡设备在收到一个TCP请求,接收到SYN的请求时,会通过LVS上配置的一些负载策略进行选择,选出合适的后台服务器,并对报文中的目标IP地址进行修改,修改成后段服务器的IP地址,然后进行转发。 TCP在链接建立的过程中,三次握手时客户端与服务器直接建立的,而负载均衡设备只是起到了一个类似于路由器的转发作用。有的时候为保证服务器的回包可以正确返回给负载均衡设备,在转发报文的时候可能会对报文的源地址进行修改。
七层网络负载均衡(“内容交换”):在四层的基础上,加上了应用层、表示层、会话层。同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。主要是通过报文中的有意义的应用层数据,在加上负载均衡设备配置的策略进行内部服务器的选择。
如果你的 Web 服务器分成两组,一组是中文语言的,一组是英文语言的, 那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。
举个例子,七层网络模型中,客户端和服务器建

四层网络负载基于IP和端口转发,如K8s的endpoint;七层负载基于URL等应用信息,如K8s的ingress。四层仅处理TCP/UDP流量,七层涉及应用层,能根据URL、语言等决定负载。七层负载常用于内容交换,可过滤特定报文,提供高级策略,如LVS用于四层,Nginx用于七层。
最低0.47元/天 解锁文章
1416

被折叠的 条评论
为什么被折叠?



