HA 代理 - 停止/排队重复的 Web 请求

HA 代理 - 停止/排队重复的 Web 请求

我使用 HA 代理来实现负载平衡。我有两台服务器 (S1) 和 (S2) 通过 HA 代理接收来自设备的请求。

设备数量超过2000台。

这些设备向 HA 代理发送多个请求(下载一个项目),HA 代理将这些请求转发到 S1 和 S2。

问题是,如果设备 1 (D1) 发送请求下载某个项目(图片/电影),并且由于下载该项目而响应需要时间;同时,设备 2 (D2) 启动并发送相同的下载请求,并且该请求再次通过 HA 代理到达服务器(S1 或 S2)并开始下载,由于下载仍在进行中,设备 3 (D3) 启动并发送相同的下载请求。这样,所有设备都开始发送相同的请求来下载相同的内容,这会极大地加载我的服务器(S1 和 S2)。

我需要的是某种方法,是否可以阻止相同的下载请求通过 HA 代理转发到服务器(S1 或 S2)。

我的目的是在 HA Proxy 层面找到一个解决方案,以停止一次又一次地发送相同的请求。如果一个请求仍在进行中,那么所有后续的相同请求要么被排队,要么被 HA Proxy 丢弃。

请帮忙。

答案1

这实际上是一个应用程序设计问题。您可以将下载请求拆分到不同的 IP,即 downloads.myapp.com,并设置 maxconn=1,即每次 1 个请求?或者您可以在 URL 上进行平衡,以便相同的下载请求发送到相同的应用程序服务器:但听起来您只需要在内存中缓存内容或更多服务器或更快的 I/O。

相关内容