bra*_*amp 7 linux mod-proxy apache-2.2
我们有一个系统,它在多个 tomcat 前面有一个 Apache 实例。这些 tomcat 然后连接到各种数据库。我们使用 mod_proxy_balancer 平衡 tomcat 的负载。
目前我们每秒接收 100 个请求,Apache 服务器上的负载相当低,但由于 tomcats 上的数据库操作繁重,负载大约为 25%(我估计它们可以处理)。
几周后会发生一个事件,我们估计我们的请求会大幅增加,可能会增加 10 倍。
我正在尽我所能减少我们的 tomcat 的负载,但我知道我们将耗尽容量,所以我想优雅地失败。我的意思是,我希望 Apache 以某种方式监视平均响应时间,而不是尝试处理太多所有超时的连接,并且一旦对 Tomcat 的响应时间超过某个阈值,我想要一个错误页面显示。
这意味着幸运的用户仍然可以快速呈现页面,而不幸的用户则快速获得错误页面。而不是每个人都为他们的页面等待太久,最终每个人都超时,并且数据库被从未使用过的查询淹没。
希望这是有道理的,所以我一直在寻找有关如何实现这一目标的建议。
谢谢
我将此称为“抱歉的服务器”。如果您使用的是 Apache 2.2,您可以将另一台主机添加到您的 LB 池作为热备件,当实际应用服务器达到容量时,您的平衡器会将请求定向到“Sorry Server”,直到应用服务器再次可用。这是一个粗略的想法:
<Proxy balancer://yourapp>
BalancerMember http://10.0.0.1:8080 retry=5 max=50
BalancerMember http://10.0.0.2:8080 retry=5 max=50
BalancerMember http://10.0.0.3:8080 retry=5 max=50
BalancerMember http://10.0.0.4:8080 retry=5 max=50
# the hot standby on server2
BalancerMember http://10.0.0.5:80 status=+H
</Proxy>
<Location /app>
ProxyPass balancer://yourapp
</Location>
Run Code Online (Sandbox Code Playgroud)
实际上,您也可以在负载均衡器机器上设置一个额外的虚拟主机,并让它自己为“Sorry Server”页面提供服务。希望有帮助:)
| 归档时间: |
|
| 查看次数: |
9387 次 |
| 最近记录: |