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

时间:2011-04-04 14:34:51

标签: mongodb cdn nfs fileserver

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

  1. CDN,例如Amazon S3 / CloudFront。
  2. 将图像存储在MongoDB中?我现在这样做,不使用GridFS因为我们的图像都在1MB以下。
  3. 使用某种类型的NFS进行某种故障转移设置。如果是#3,那么如何配置此故障转移?
  4. 我现在使用#2就好了,之前没有使用故障转移#3。如果我使用MongoDB作为我网站的数据存储和服务图像,这些对图像的GET请求是否会影响从数据库中获取非图像数据的性能?

3 个答案:

答案 0 :(得分:8)

  

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

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

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

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

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

答案 1 :(得分:5)

为什么不在MongoDB前面使用CDN?

答案 2 :(得分:0)

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