我目前正在将应用程序切换到 amazon,但我注意到有时我收到的响应是 504。我们的系统设置为在我们的 ELB 前面有一个 LB,然后它直接转到 tomcat。

我们目前正在为我们的服务和 servlet 过滤器中的所有请求计时,记录响应时间,它们总是小于 1 秒。然后我们查看 LB 日志并看到 504,看起来 ELB 以某种方式超时并返回 504。

有谁知道为什么会发生这种情况?
谢谢

编辑:不确定是否重要,但目前我们只有 1 个实例,它可以扩展到 3 个实例。

最佳答案

众所周知,Amazon 的 ELB 不能很好地处理突发的请求,因为在它们下面只是运行某些代理解决方案(我猜是 HAProxy)的自动扩展实例组。因此,它会随着负载的增加而扩展,就像用户定义的自动扩展组所做的那样,然后,当您遇到突发情况时,您可能会在它启动其他实例时错过一些请求。
当您希望为特定事件提供此类工作负载时,您可以向支持人员请求 ELB 预热,但不能将其作为永久配置。他们会问你一个确切的时间表,并在它结束后恢复正常行为。

因此,对于某些应用程序和用例,Amazon 的 ELB 不是最佳解决方案。我不知道这是否是你的情况,但无论如何,这是一个需要考虑的点。

关于amazon-web-services - AWS ELB(弹性负载均衡器)有时会立即返回 504(网关超时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31730199/

10-12 15:28