如何对来自Tomcat服务器的下载请求进行带宽控制



我有一个tomcat服务器,它将位于Amazon EC2实例上。它将提供来自大约 10000 个客户端的文件下载请求。

Each client will follow the steps to download some files:
(1) Send request to Tomcat to check if need to update files
(2) Tomcat will send the file list to client if any
(3) Client will download the file list via HTTP servlet.

基本上我们想在Tomcat服务器高负载时实现目标(由于带宽/会话限制等),Tomcat会向客户端请求返回一个INTERVAL,然后客户端将等待间隔时间重新发送下载请求。有没有针对这样的风景进行设计的好方法?

您应该查看 HTTP 缓存控件和范围标头来帮助管理此问题。对于你想做的事情来说,这几乎是死的。

如果您正在处理静态文件(即 Tomcat 将直接提供的文件,而不是通过 Servlet 或其他类似东西生成的一些动态内容),那么 Tomcat 将自动为您遵循 Range 标头。

游戏是,您的客户端必须发出实际使用范围标头的HTTP请求,并且客户端必须是限制连接的人。

如果您的客户愿意承担这一责任,那么开箱即用的 Tomcat 应该可以正常工作,只需通过服务器发布文件系统目录即可。开箱即用,它将显示目录中文件的列表,然后您可以使用缓存标头来确定已更改的内容,并使用 Range 标头来划分内容。

最新更新