如何设置和服务失败的鲸鱼式服务器过载页面?

Posted

技术标签:

【中文标题】如何设置和服务失败的鲸鱼式服务器过载页面?【英文标题】:How to set up and serve a fail whale-like server overload page? 【发布时间】:2012-04-26 00:04:56 【问题描述】:

我们在 AWS 上使用中型高 CPU 服务器建立了一个相当大的会员站点。大多数情况下,它以非常低的容量(约 3%)运行,但我们每周一次向有机会的会员发送一份时事通讯。在时事通讯发布后的几分钟内,服务器负载猛增(有时超过 100%),会员试图访问该网站。

从长远来看,我们将重组系统,但现在,我想添加一个溢出服务器,在此过程中向用户提供“几分钟后再试”页面。

我还没有找到任何关于为这类事情设置路由的好方法。有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

Amazon Web Services 博客上有一篇文章解释了如何执行此操作。它将故障转移网页放在 S3 上,易于维护且成本低廉。

Create a Backup Website Using Route 53 DNS Failover and S3 Website Hosting

【讨论】:

【参考方案2】:

为什么不将Elastic Load Balancing 与Auto Scaling 一起使用?

这将允许您将服务器数量与您的实际使用情况相匹配。在一周的大部分时间里,您不会为 97% 的未使用容量付费,而在新闻通讯期间,您将有足够的容量供所有人登录并从您那里购买东西。

【讨论】:

这似乎不能解决上述问题。 @williamtell:想详细说明一下吗?这实际上是一种解决方案,OP 接受了该解决方案。 ELB 可以将传入的 Web 请求分布在任意数量的 Web 服务器上,而 Auto Scaling 可以帮助自动化该过程。为了确保我会在简报发布之前编写脚本将一台服务器添加到 ELB 配置。如果我最初估计的额外服务器在给定一周内不足,Auto Scaling 将根据需要自动添加额外容量。 是的,但上面的问题是关于如何放置错误页面。您提供的是长期解决方案,但问题是如何设置错误页面以应对由于流量过大而导致延迟或崩溃的情况? @williamtell:Stack Overflow 不仅仅是从字面上回答问题,而且是为了指出比 OP 所追求的更好的解决方案。鉴于他接受了答案,我认为我已经成功地做到了。我的解决方案实际上更有效(提供网站的副本),同时工作量更少(只需从快照启动新服务器,无需创建任何带有错误页面的新配置)。

以上是关于如何设置和服务失败的鲸鱼式服务器过载页面?的主要内容,如果未能解决你的问题,请参考以下文章

nginx并发过载后

如何将 Apache 网站设置为 503 “临时停机”?

处理监视器警报过载和脱敏的最佳方法?

Hystrix请求熔断与服务降级

58沈剑架构系列如何实施异构服务器的负载均衡及过载保护?

SpringCloud实战-Hystrix请求熔断与服务降级