什么是7层负载均衡?

在开源PaaS Rainbond中,我们对各种应用层协议匹配不同的网络治理插件,以实现7层负载均衡(layer 7 load balancing),例如HTTP、gRPC、Redis等协议。原因在于对于一些在线环境,我们希望可以对服务间调用实现热更改或者更好的容错,比方说A/B测试、灰度发布等等,必须要在7层负载均衡上完成。

那么什么是7层均衡,它跟4层负载均衡(layer 4 load balancng)有何不同?

7层负载均衡和4层负载均衡之间的区别

4层负载均衡在中间传输层执行,它处理消息的传递,但不考虑消息的内容。例如TCP是网络上Hypertext Transfer Protocol(HTTP)流量的第四层协议。在这一过程中,4层负载均衡会将网络数据包转发到上游服务器,但不会检查数据包的内容,只能通过检查TCP流中的前几个包来做出有限的路由决策。

7层负载均衡不同于4层负载均衡,它在高级应用层上执行,会处理每个消息的实际内容。HTTP是网络上网站流量的主要7层协议。7层负载均衡以比4层负载均衡更复杂的方式路由网络流量,尤其适用于基于TCP的流量(如HTTP)。7层负载均衡会终止网络流量并读取器中消息,它可以根据消息内容(如URL或cookie)做出负载均衡决策。随后,7层负载均衡与选定上有服务器建立新的TCP连接并将请求写入服务器。

7层负载均衡的好处

7层负载均衡比基于数据包的4层负载均衡更占CPU,但很少会导致服务器性能下降。7层负载均衡可以让负载均衡器做出更明智的决策,并可以对内容进行优化和更改,如压缩、加密等等。7层负载均衡还可以利用buffering来卸载上游服务器的慢速连接,从而提高性能。

执行7层负载平衡的组件通常被称为反向代理服务器。

7层负载均衡示例

举个简单的例子,假设用户访问高流量网站,在会话期间,他或她可能会请求静态内容(例如图像或视频)、动态内容(例如新闻订阅源)或者交易信息(例如订单状态)等等。7层负载平衡允许负载均衡器根据请求本身中的消息(如内容类型)来路由请求。也就是说,我们可以将对图像或视频的请求路由到存储它的服务器,并进行高度优化以提供多媒体内容;可以将诸如折扣价之类的交易信息请求路由到负责管理定价的应用服务器。借助7层负载平衡,网络和应用程序架构师可以创建高度优化的服务器基础架构或应用交付网络,在保障可靠性的同时进行有效扩展。

  • END -

关于Rainbond

Rainbond是一款以应用为中心的开源PaaS,由好雨基于Docker、Kubernetes等容器技术自主研发,可作为公有云或私有云环境下的应用交付平台、DevOps平台、自动化运维平台和行业云平台,或作为企业级的混合云多云管理工具、Kubernetes容器管理工具或Service Mesh微服务架构治理工具。

阅读更多