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

Application load balancer vs network load balancer

我是 AWS 新手。我无法清楚地了解 ALB 与 NLB 的区别。谁能简单解释一下?

已经有一些很好的答案,让我挑出一些可能有帮助的要点。

网络负载平衡器

顾名思义,这仅适用于网络级别。通常是第 4 层。 它不关心,也不会看到关于应用程序层的任何东西,例如 cookie、headers 等。

It is context-less, caring only about the network-layer information contained within the packets it is directing this way and that.

此处的 'balancing' 仅使用 IP 地址、端口号和其他网络变量完成。

应用程序负载均衡器

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

It is context-aware and can direct requests based on any single variable as easily as it can a combination of variables.

主要区别

网络负载均衡器仅转发请求,而应用程序负载均衡器检查 HTTP 请求的内容header以确定将请求路由到何处

网络负载平衡无法确保应用程序的可用性,而应用程序负载平衡可以。

我从中提取这些信息的一些很好的来源是:

https://medium.com/awesome-cloud/aws-difference-between-application-load-balancer-and-network-load-balancer-cb8b6cd296a4

https://linuxacademy.com/community/show/22677-application-load-balancer-vs-network-load-balancer/

https://aws.amazon.com/elasticloadbalancing/features/#compare

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