限制Servlet中的下载文件带宽/速度
问题内容:
我们得到了在集群模式下工作的高负载Java应用程序。
我需要增加为客户下载和上传文件的功能。对于存储文件,我不确定要去到用户gridFs,这是最好的选择,但是mongo可以集群,并且mongo可以在diff节点之间复制数据。那正是我所需要的。
应限制不同的用户组使用不同的带宽。根据一些业务规则,我应该限制某些用户的下载速度。我看到一些解决方案,此
它们大多数以相同的方式工作。
- 读取一堆字节
- 睡眠线程
- 重复
Mongo只是向我提供InputStrem,我可以从该流中读取并写入servlet输出流。我不确定这是否有效。同样,我担心用户在下载过程中会创建很多并发线程,这会损害性能。
servlet容器是否可能有问题?
如果这可能是一个问题,如何避免呢?可能使用nio吗?
我更喜欢使用纯Java解决方案。
任何帮助将不胜感激。
问题答案: