应用程序负载均衡器与网络负载均衡器

9

我是AWS的新手。我无法很清楚地理解ALB和NLB之间的区别。有人可以简单地解释一下吗?

3个回答

13

已经有一些非常优秀的答案了,我来列举一些关键点以帮助您理解。

网络负载均衡器

正如其名称所示,这只适用于网络层。通常是第四层。它不关心应用程序层的任何内容,例如 cookie、头等信息。

它是无上下文的,只关心在包含它正在调度的数据包中的网络层信息。

在这里进行的“平衡”完全是使用 IP 地址、端口号和其他网络变量进行的。

应用程序负载均衡器

它考虑了从应用程序到网络的多个变量。可以基于这些变量路由流量。

它是有上下文感知的,并且可以根据任何单个变量或变量组合轻松地指示请求。

主要区别

网络负载均衡器只是转发请求,而应用程序负载均衡器会检查 HTTP 请求标头的内容以确定在哪里路由请求。

网络负载均衡无法保证应用程序的可用性,而应用程序负载均衡器可以。

一些我提取这些信息的好资源是:

这篇文章讨论了AWS中应用负载均衡器(ALB)和网络负载均衡器(NLB)的区别;这个链接提供了更多关于它们之间比较的信息;你也可以参考AWS官网上的比较表格。在这些资源中,你可以学习如何选择适合你应用程序的负载均衡器类型,并了解它们性能和功能方面的差异。

5
您的“关键差异”有一些不准确。NLB根本不转发请求,因为请求是第7层协议。NLB路由连接。NLB和ALB一样都有健康检查,所以不清楚您所指的“无法保证应用程序的可用性”是什么意思。 - Michael - sqlbot
1
@Michael-sqlbot 对于关于转发请求的不准确性,我向您道歉,我同意您的评论。至于您的第二点,NLB可以通过TCP握手等方式对服务器进行健康检查。但就实际面向客户端的应用程序而言,它并没有意识到什么? - james
2
没错,这取决于所谓的“应用程序”是什么。如果是一个网络应用程序的话,使用网络负载均衡器可能不是正确的选择。 - Michael - sqlbot

0
应用负载均衡器(ALB): 第7层(应用层):ALB在OSI模型的应用层操作,根据内容(例如HTTP/HTTPS头部、URL)进行路由决策。 HTTP/HTTPS和WebSocket支持:ALB非常适用于依赖于HTTP/HTTPS的应用程序,并支持WebSocket连接。 基于路径和主机的路由:ALB允许您根据请求路径或主机来路由流量。 SSL/TLS终止:ALB支持SSL/TLS终止,使其能够从后端服务器卸载SSL/TLS解密。 基于内容的路由:ALB支持基于内容的路由,使您能够根据请求的内容将请求路由到不同的服务。 容器化应用:ALB与容器化应用集成良好,通常在微服务架构中使用。 目标组:ALB使用目标组将请求路由到注册的目标(例如EC2实例、容器)。 网络负载均衡器(NLB): 第4层(传输层): NLB在OSI模型的传输层操作,根据IP协议数据进行路由决策。 TCP/UDP支持: NLB专为处理TCP和UDP流量而设计,适用于非HTTP应用程序。 静态IP地址: NLB提供静态IP地址,对于依赖IP地址白名单的应用程序非常有益。 高吞吐量和低延迟: NLB针对高吞吐量和低延迟应用进行了优化,适用于性能至关重要的场景。 TLS终止: NLB可以在负载均衡器上终止TLS,类似于ALB,但没有特定于应用层协议的高级功能。 跨区域负载均衡: NLB支持跨区域负载均衡,在所有启用的可用区中均匀分配流量。 IP地址保留: NLB可以保留客户端的IP地址并将其传递给后端服务器(源IP保留)。

-2
在@james的主要回复中,多次定义了网络层并提到了网络层信息。然而,我想提一下,NLB确实在第四层运行,但第四层是传输层而不是网络层。 NLB保留源IP,因此在NLB的情况下可以使用弹性IP。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接