应用程序、网络和网关负载均衡有什么区别?
应用程序负载均衡器(ALB)、网络负载均衡器(NLB)和网关负载均衡器(GLB)是云中使用的三类负载均衡器。负载均衡是在支持应用程序的资源池中平均分配网络流量的过程。现代应用程序可同时处理数百万用户。这些高流量需要许多包含重复数据的资源服务器。为了重定向应用程序流量,ALB 会检查请求的内容,例如 HTTP 标头或 SSL 会话 ID。NLB 会检查 IP 地址和其他网络信息,以最佳方式重定向流量。GLB 充当透明的网络网关(所有流量的单一入口和出口点),可在根据需求扩展虚拟设备的同时分配流量。
工作原理:ALB 与NLB 与GLB
ALB、NLB 和 GLB 均提供不同功能。因此,它们的工作方式略有不同,并且包含不同的组件。
应用程序负载均衡器的工作原理
ALB 将传入流量分配到多个目标,例如 EC2 实例。例如,电子商务应用程序具有产品目录、购物车和结账功能。ALB 会将浏览产品的请求发送给包含图像和视频但不需要保持开放连接的服务器。相比之下,它会将购物车请求发送给保持多个客户端连接并长时间保存购物车数据的服务器。
ALB 有一个侦听器组件,用于检查来自客户端的连接请求。您可以为侦听器定义规则,以确定负载均衡器如何将请求路由到其注册目标。目标组将注册目标分组。您可以定义规则,将常见流量路由到整个组。例如,您可以为一般请求创建目标组,为应用程序的微服务请求创建其他目标组。
下图显示了 ALB 的工作原理。
网络负载均衡器的工作原理
NLB 根据网络条件分配流量。例如,如果您有多个包含重复数据的数据库服务器,则 NLB 会根据预先确定的服务器 IP 地址或服务器可用性来路由流量。
NLB 监控其注册目标的运行状况,并仅将流量路由到运行状况良好的目标。负载均衡器收到连接请求后,它会从目标组中选择一个目标作为默认规则。它尝试在侦听器配置中指定的端口上打开与所选目标的 TCP 连接。在连接的生命周期内,每个单独的 TCP 连接都路由到单个目标。同样,您也可以在 UDP 流的整个生命周期内始终将其路由到单个目标。
网关负载均衡器的工作原理
使用 GLB,您可以部署、管理和扩展虚拟设备,例如入侵检测与防御、防火墙以及深度数据包检测系统。它为所有设备流量创建了单一的入口和出口点,并根据需求扩展您的虚拟设备。您还可以用它进行跨虚拟私有云(VPC)边界的流量交换。
在 GLB 中,您可以使用路由表来建立规则。根据您设置的规则,它会选择不同的目标组来转发流量。它接收 IP 数据包并将流量转发到特定的目标组。
主要区别:ALB 与NLB 与GLB
ALB、NLB 和 GLB 在网络通信的不同层面运行。ALB 在 OSI 第 7 层上运行,允许应用程序级流量操作和路由。NLB 在第 4 层运行,用于基于端口和 IP 地址的网络级流量管理。GLB 在第 3 层和第 7 层运行,在网络层面提供均衡和路由服务以及网关功能。
以下是 ALB、NLB 和 GLB 之间的其他主要区别。
目标类型
目标类型是每个负载均衡器将流量路由到的端点。ALB 使用 IP 地址、实例和 AWS Lambda 目标类型。NLB 使用 IP 和实例,它们还可以将流量路由到 ALB 以处理更复杂的请求。GLB 使用 IP 和实例目标类型。
代理行为
负载均衡器在收到客户端请求时采取的操作取决于以下两点之一:
- 如果负载均衡器充当代理然后终止客户端的连接
- 如果它在不结束流程的情况下转发请求
终止流量使负载均衡器能够执行其他流量管理功能,例如 SSL 终止、会话保持和基于内容的路由。
ALB 终止客户端连接,然后建立一个新的连接,充当代理。NLB 还会终止客户端连接并代表客户端建立新的连接。但是,GLB 不充当代理或终止连接;它直接转发流量。
协议
这些负载均衡器支持不同的协议来处理特定类型的流量并执行高级功能。ALB 支持用于基于 Web 的流量的 HTTP、HTTPS 和 gRPC 协议。NLB 支持 TCP、UDP 和 TLS 协议,这些协议涵盖了网络级别的流量分配。最后,GLB 涵盖基于 IP 的路由,可处理任何基于 IP 的协议。
算法
这些负载均衡器使用不同类型的算法将流量均匀地分配到其目标。ALB 默认使用循环算法,一个接一个地路由流量。但是,NLB 使用流哈希算法,以便以预先确定的方式将流量路由到特定目标。GLB 使用路由表查找来确定将流量路由到何处。
何时使用:ALB 与NLB 与GLB
当您需要灵活的应用程序级流量管理和路由时,ALB 是一个不错的选择。这是微服务、容器化环境和 Web 应用程序的理想之选。它的功能(例如 SSL 终止、会话保持和基于内容的路由)使其能够为复杂的路由场景提供帮助。
NLB 最适合实现高性能、低延迟和可扩展的网络级均衡。在传输层分配流量的应用程序使用 NLB,尤其是考虑到其可靠性。游戏系统、媒体流式传输服务和主要 IoT 系统都使用 NLB。
当您在网络网关级别上进行均衡时,GLB 是理想的选择。例如,如果您管理云和本地环境之间或跨不同区域的流量,GLB 就能很好地发挥作用。由于它结合了 OSI 第 3 层和第 4 层均衡功能,因此可以在不同的区域和网络之间路由流量。由于它支持基于 IP 的路由,它可以在虚拟网关之间分配流量,因此可以提供高可扩展性和可用性。
差异摘要:ALB 与NLB 与GLB
应用程序负载均衡器(ALB) |
网络负载均衡器(NLB) |
网关负载均衡器(GLB) |
|
OSI 层 |
适用于第 7 层,即应用层。 |
适用于第 4 层,即传输层。 |
适用于网络层、第 3 层和第 7 层。 |
目标类型 |
适用于 IP、实例和 Lambda 目标类型。 |
适用于 IP、实例和 ALB 目标类型。 |
适用于 IP 和实例目标类型。 |
代理行为 |
结束连接。 |
结束连接。 |
不会终止流程。 |
协议 |
支持 HTTP、HTTPS 和 gRPC 协议。 |
支持 TCP、UDP 和 TLS 协议。 |
支持基于 IP 的路由。 |
算法 |
循环法。 |
哈希流。 |
路由表查询。 |