什么是7层负载均衡?

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

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

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

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

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

7层负载均衡的好处

7层负载均衡比基于数据包的4层负载均衡更占CPU,但不多会致使服务器性能降低。7层负载均衡可让负载均衡器作出更明智的决策,并能够对内容进行优化和更改,如压缩、加密等等。7层负载均衡还能够利用buffering来卸载上游服务器的慢速链接,从而提升性能。微信

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

7层负载均衡示例

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

  • END -

关于Rainbond

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

阅读更多