我们有一个高负载的Java应用程序,以集群模式工作。
我需要为我们的客户添加下载和上传文件的功能。为了存储文件,我打算使用gridFs,不确定它是否是最佳选择,但mongo可以集群化,并且mongo可以在不同节点之间复制数据。这正是我所需要的。
不同组的用户应受不同带宽的限制。根据某些业务规则,我应该限制某些用户的下载速度。我看到了一些 解决方案。
它们大多数都是以相同的方式工作:
- 读取一堆字节
- 线程休眠
- 重复
Mongo简单地为我提供了InputStrem,我可以从该流中读取并写入servlet输出流。我不确定这是否是有效的方法。此外,我担心在下载期间,用户可能会创建大量并发线程,这可能会影响性能。
这可能会成为servlet容器的问题吗?
如果这可能会成为问题,如何避免?可能使用nio?
我更喜欢使用纯Java解决方案。
任何帮助都将不胜感激。