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

标签 mongodb cdn nfs fileserver

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

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

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

最佳答案

could these GET requests for the images ever impact the performance of getting non-image data out of the DB?

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

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

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

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

关于mongodb - 图片上传 - CDN、MongoDB 还是 NFS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5540044/

相关文章:

javascript - 在 NodeJS API 调用中推送和拉取数组中的元素

node.js - Mongoose 小写选项不起作用

jquery - 有没有最新jquery的cdn,有缓存时间吗?

cdn - 通过 F5 Big IP 转发 Akamai True-Client-IP

python - pynfs : error: gssapi/gssapi. h: 没有那个文件或目录

javascript - Mongoose 无法识别我的 2dsphere 索引

spring - 在集合中查找元素,其中元素具有一个列表字段,并且给定值必须属于该列表

ruby-on-rails - 将实时桌面视频流式传输到 Web 应用程序

ubuntu - NFS 共享中挂载的子目录不可写

linux - 如何模拟挂起的文件系统?