图片上传 - CDN、MongoDB 还是 NFS?

Posted

技术标签:

【中文标题】图片上传 - CDN、MongoDB 还是 NFS?【英文标题】:Image Uploads - CDN, MongoDB, or NFS? 【发布时间】:2011-07-29 05:50:32 【问题描述】:

我有一个管理类型系统,用于具有多个 Web 服务器的网站,用户可以在其中配置页面并上传图像以显示在页面上(类似于 CMS)。如果您已经有一个设置了副本集的 MongoDB 实例,那么存储这些上传的首选方式是什么,以便存在故障转移,为什么?

    CDN,例如 Amazon S3 / CloudFront。 将图像存储在 MongoDB 中?我现在这样做并且不使用 GridFS,因为我们的图像都小于 1MB。 使用某种类型的 NFS 和某种故障转移设置。如果 #3,那么如何配置此故障转移?

我现在使用 #2 很好,之前使用 #3 没有故障转移。如果我使用 MongoDB 作为我的网站和图像服务的数据存储,这些图像的 GET 请求是否会影响从数据库中获取非图像数据的性能?

【问题讨论】:

【参考方案1】:

具有共享文件系统的 Redhat 或 CentOS 集群可以为 NFS 提供故障转移机制。

【讨论】:

【参考方案2】:

为什么不在 MongoDB 前面有一个 CDN?

【讨论】:

感谢您的想法。我刚刚遇到GridFS versus CDN【参考方案3】:

这些对图像的 GET 请求是否会影响从数据库中获取非图像数据的性能?

嗯,更多的图像请求 = 更多与 Web 服务器的 HTTP 连接 = 更多来自 MongoDB 的图像请求 = 更多的网络流量。

所以,是的,从数据库中获取更多图像数据在理论上可能会影响获取非图像数据。您需要做的就是以 1MB 的图像每秒请求 1000 张图像,您将开始看到 MongoDB 服务器和 Web 服务器之间的大量网络流量。

请注意,这不是 MongoDB 的限制,这是网络吞吐量的限制。

如果您开始获得大量流量,那么绝对推荐使用 CDN。如果您已经有一个输出图像的 HTTP 页面,这应该非常简单。

【讨论】:

以上是关于图片上传 - CDN、MongoDB 还是 NFS?的主要内容,如果未能解决你的问题,请参考以下文章

上传图片到cdn服务器

搭建NFS共享目录,解决wordpress负载均衡图片上传问题

您的CDN生效了吗?

node批量读取本地图片并上传

python利用mongodb上传图片数据 : GridFS 与 bson两种方式

使用 CKEditor CDN 时如何从桌面上传 CKEditor 中的图像?