0

我已经阅读了许多关于将图像保存在服务器端的数据库或文件系统中的问题/评论。但是我仍然很困惑。现在我允许用户上传图像(限制为 10MB),并将图像保存在服务器文件夹中,并通过指向该位置的 apache 上下文路径配置提供图像。但是,由于图像数量和负载高。我们希望提供负载平衡和故障转移功能。所以我有2个选择。

  1. 添加代码以将上传的图像复制到所有服务器或使用 rsync 来执行此操作。
  2. 使用 CouchDB 或 MongoDB 并将图像保存为文档的附件。所以我有开箱即用的复制功能。

谁能告诉我这些方法的优缺点。与文件系统相比,CouchDB/MongoDB 能否具有相同的读取性能?

4

2 回答 2

0

与文件系统相比,CouchDB/MongoDB 能否具有相同的读取性能?

不,文件系统计时器和数据库计时器之间会有延迟,这是不幸的现实。

我不知道您当前的设置、负载和性能,所以我无法真正建议该怎么做,但是,Apache 无论如何都不是一个好的图像服务器。

您最好的选择可能是查看图像的 CDN 缓存。

于 2013-09-25T07:23:24.950 回答
0

您还可以将文件存储在分布式文件系统中。与 DB 支持的图像服务器相比的好处是您不必更改应用程序。显然,以相同的方式存储所有数据(包括图像)可能对您有好处,但为已经工作的系统更改架构也可能会出现问题。

例如,GlusterFS可以安装在“普通”文件系统之上,为您提供分布式功能,最大限度地减少对系统本身的更改。它应该通过其插件(翻译器)支持您可能期望从云系统获得的所有功能:复制、负载平衡、将文件剥离到重新定位的部分和故障转移。

于 2013-09-25T06:38:54.410 回答