如何确保我的文件服务可靠且可扩展?它可以处理多少个并行请求?
我正在考虑超越硬件能力和带宽。
如果这些是静态文件,只需直接链接到它。所有体面的 servletcontainers/appservers 都有一个完善的DefaultServlet
. 如果这些是位于Web 应用程序外部的静态文件,您可以将它们链接到,那么您也可以将这些文件的根文件夹添加为另一个上下文。目前尚不清楚您使用的是哪个服务器,但如果它是 Tomcat,您可以添加一个新<Context>
的server.xml
:
<Context docBase="/path/to/static/files" path="/files" />
这样它就可以通过http://example.com/files/...
.
如果这些是动态生成的文件或来自数据库的文件,那么您需要开发一个有效地执行 IO 工作的 servlet:即不要将整个数据不必要地存储在内存中(例如,在将它们发送到输出之前ByteArrayInputStream
或之前)。只需当字节进入时立即byte[]
将字节写入输出。您可能会发现这些基本文件servlet和更高级文件servlet(支持简历等)的示例很有用。
如果您只是从文件系统提供静态文件,只需使用 Apache - 它会比您自己编写的任何内容更好。