AWS ELB - 下游连接数高于工作者数量

AWS ELB - 下游连接数高于工作者数量

这可能是我从根本上不了解 AWS 应用程序弹性负载均衡器设置的原因。

非常简单。负载均衡器是一个公共前端,将所有流量转发到单个目标组。

目标组中有 N 个容器。每个容器运行一定数量的工作器,例如 X。每亚马逊文档建议启用容器的保持活动功能,并将其设置为高于 ELB 入站超时的值。

但这本质上意味着从 ELB 到目标创建超过 N*X 个连接是没有意义的,因为来自额外连接上的请求只会在目标上的队列中等待,可能永远等待下去。

从我的实验来看,情况确实如此。ELB 会打开与其接收的目标相同的连接,并且在流量高峰期间,这些额外的请求会失败。

这有点违背了 ELB 的目的,不是吗?

理想情况下,会有一个选项来限制每个目标打开的连接数,并且 ELB 会将额外的连接保留在其一侧的等待队列中,然后再转发到其打开的连接上的目标(或通过自动扩展启动的新目标)。

我已经阅读了所有 Amazon ELB 文档和常见问题解答,并在这里进行了广泛搜索,但除了禁用保持活动之外没有找到任何其他解决方案。

我是否遗漏了一些基本的东西?

答案1

所以我的基本理解是,ELB 在没有可用后端连接的情况下从前端应用程序打开连接。如果这是正确的,那么您缺少的是:

ELB 应该打开与请求数量相同的连接。ELB 的基本概念是将您的请求负载平衡到注册到它的目标上。因此,缺陷不在于您的 ELB,显然它应该接受所有指向它的流量。您在这里忽略的一点是,您应该在 ELB 上注册足够多的目标,以确保 ELB 可以负载平衡它收到的所有流量,而不会使目标过载,简单来说,这意味着您需要设置适当的自动扩展策略来应对流量高峰,并确保有足够的后端目标可用于处理负载。

希望这可以帮助!

相关内容