首先是问题的简单形式:
为了向大量客户端提供大量静态内容,最好让 http 服务器从文件系统中提供内容,其中每个主键都存储在文件中(索引节点!)或实施一个“真正的”数据库?“更好”是指性能、机器负载、内存使用等方面。
问题的更详细版本:
我们目前正在重新设计具有以下要求的数据库服务器:
- SSL
- 成千上万的客户 (1-30.000)
- 客户端请求被序列化,一次一个,2分钟内大约100个条目
- 客户端将在超时后断开连接
- 一些客户端稍后会重新连接并执行更多(1-10)个请求
- 数据库将包含 > 100.000 个主键
- 数据库内容是静态的(或多或少)
- 请求大小通常 < 80 字节
- 响应大小通常 < 30 字节
虽然我们的协议目前不是 http,但我考虑过使用 Apache 或其他 http 服务器并更改我们的协议以适应 http。但是接下来的问题是是否使用“真实”数据库(例如 couchdb)或者我们是否只使用文件系统作为数据库,因为 > 95% 的请求将是对静态内容的请求。性能和扩展是这里的一个问题。例如,如果 1.000 个客户端将在上午 08:00 启动,则可能会发生这 1.000 台机器同时连接并分别执行 100 个请求。一切都在两分钟之内,所有这些都产生了建立 ssl 连接的开销。这可能会使任何服务器达到其极限。
有什么提示吗?