【发布时间】:2010-08-27 18:41:34
【问题描述】:
我的主要目标是通过 Web 服务器提供大量 XML 文件(> 10 亿,每个 30 req/sec)被请求。
我的团队目前的建议是创建一个专用的 Java 应用程序来实现 HTTP 协议并使用 memcached 来加快速度,将所有文件数据保存在 RDBMS 中并摆脱文件系统。
另一方面,我认为,经过调整的 Apache Web 服务器或 lighttpd 就足够了。缓存可以留给操作系统或 Web 服务器的默认缓存。如果需要相同的输出并且仅根据文件名进行查询,则将数据保留在 DB 中是没有意义的。不确定 memcached 将如何在这里工作。在通过外部代码更新文件的同时更新外部缓存(memcached)也会增加复杂性。
还有其他问题,如果我选择使用文件,是否可以将它们存储在 \a\b\c\d.xml 等目录中并通过 abcd.xml 访问?或者我应该将所有 10 亿个文件放在一个目录中(不确定操作系统是否允许)。
这不是网站,而是封闭网络中的应用程序 API,因此 Cloud/CDN 没有用处。
我打算使用 CentOS + Apache/lighttpd。建议任何替代和最佳解决方案。
This 是在该主题上找到的唯一公开注释,而且它也有点旧。
【问题讨论】:
-
每天 50k 更新是每 2 秒更新一次。这不是我所说的“低频”更新。
-
但与记录/文件总数相比,频率相对较低。
-
没关系,在那个速度下,任何基于磁盘的东西都会产生明显的效果。记在心里。
标签: apache static memcached webserver lighttpd