1

许多 PDF 作为每个 PDF 文件的 BLOB 字段存储在 MySQL 中。每个文件的平均大小为 500K。

Rails 应用程序将 :binary 数据作为文件下载流式传输,用户单击下载链接。

假设最多有 5 个用户同时下载 5 个 PDF,我应该注意哪些部署设置参数?例如对于薄的情况:

瘦启动——服务器 3

--servers 3 对于上述示例是否足够好(或者需要 5 个或更多)?

第二个问题是“瘦”是否是一个有能力的解决方案?

谢谢!

4

2 回答 2

1

首先,我认为您不应该将文件存储在数据库中。更好的地方是文件系统,或者像 S3 这样的云存储。如果您要使用回形针之类的附件插件,这很容易设置。

但是,假设您想将文件存储在数据库中。

您当前设置的问题是,当您发送文件时,您的瘦实例在客户端下载数据时被阻塞。这意味着如果您有 3 个精简实例和 3 个人下载 pdf,那么您的站点将不会响应任何请求。

值得庆幸的是,这个问题有一个解决方案,它涉及到x-sendfile标题。它的工作方式是您的瘦实例将文件发送到您的网络服务器,例如 nginx,然后直接提供文件。

这是关于如何使用 nginx 进行设置的关于 stackoverflow 的一篇很棒的文章。

您使用的是哪个网络服务器?

于 2010-03-08T18:14:41.273 回答
0

您可以定义一个或两个瘦专用于您的下载。在您的网络服务器中,您可以在 Rails 应用程序和下载 url 中进行不同的代理分发

于 2010-03-08T09:26:38.050 回答