【发布时间】:2014-10-18 10:06:30
【问题描述】:
存储 10 亿张图片的最佳方式是什么? (由网站用户通过PHP或Javascript上传)
既然每个人都知道在单个目录或 NFS 等中存储大量图像(在这种情况下是网站用户上传的图像)是不好的,那么存储 10 亿张图像的存储解决方案的最佳方式、架构和配置是什么?
假设单个用户的图片不超过 20 张,我们将如何组织用户图片?请注意,这必须以结构化方式进行组织,以便我们可以通过某种类型的用户唯一标识符或哈希以编程方式通过 php/javascript 或 API 获取单个用户的图像。
任何开源解决方案都将是首选。可能的解决方案是 glusterFS、MongoDB、WeedFS 等。
假设如下:
使用 Linux Debian 的网站每月的页面浏览量将达到 10 亿次 发行版
每位用户最多 20 张照片(10 个 90 像素 x 90 像素和 10 最大宽度为 500 像素或最大值的大型、脚本调整大小的图像 高度 500px 取决于图像的形状,意思是正方形,矩形, 水平、垂直等)。
一个 LEMP-stack (Linux Nginx MySQL PHP) 社交媒体类型的应用程序,其内容将是文本和 图片。
没有像 S3 等第三方云存储。它必须在 使用我们自己的硬件和资源的私有数据中心。
解决方案必须包括存储解决方案和组织 用户上传的图片。
在我的研究过程中,我还提出了以下 2 篇很棒的文章,以帮助您进一步澄清我的问题。
【问题讨论】:
-
你太慷慨了:“[..] 如果你愿意,甚至可以随意写一篇关于它的文章。”
-
@RobbyCornelissen 这似乎是一份工作任务的副本,以及针对学生的“随意......”部分。最有可能的家庭作业。
-
@thorstenmüller 对于家庭作业来说似乎有点宽泛。自己在猜测面试任务。
标签: database file-upload filesystems scalability weed-fs