Php 用于HA文件存储的MongoDB GridFS

Php 用于HA文件存储的MongoDB GridFS,php,mongodb,gearman,Php,Mongodb,Gearman,我在一个项目中,我需要存储许多用户上传的文件,并提供冗余。对于文件上传,我首先考虑将用户上传的文件放在NFS“uploads”目录中,并使用Gearman抓取文件,将其移动到永久存储位置,然后用文件信息(文件大小、日期等)更新MySQL 现在我已经了解了MongoDB的GridFS,我认为这可能是一种比NFS和Gearman更好的方法。有了GridFS,我不需要NFS,而且冗余是内置的——但我会对MongoDB给予很大的信任 说到这里,我想知道是否有人有什么想法?有人知道GridFS的大规模部署

我在一个项目中,我需要存储许多用户上传的文件,并提供冗余。对于文件上传,我首先考虑将用户上传的文件放在NFS“uploads”目录中,并使用Gearman抓取文件,将其移动到永久存储位置,然后用文件信息(文件大小、日期等)更新MySQL

现在我已经了解了MongoDB的GridFS,我认为这可能是一种比NFS和Gearman更好的方法。有了GridFS,我不需要NFS,而且冗余是内置的——但我会对MongoDB给予很大的信任

说到这里,我想知道是否有人有什么想法?有人知道GridFS的大规模部署吗?我知道很多人都在使用MongoDB for NoSQL,但我还没有找到很多关于GridFS部署的参考资料


谢谢

我们正在为我们的一个项目使用GridFS。我还使用gearman分发作业队列,这样客户端就不必等待文件完成上传。一旦用户点击submit,php将作业发送给gearman,然后我有“工人”来插入MongoDB。

您也可以查看,这是一个分布式存储系统。

如果您不介意我问一下,您在GridFS中存储了多少数据,在多少台机器上存储了多少数据?对于没有gearman的项目(不确定开发人员是否会实现gearman),这是一个文件共享应用程序,我们预计至少会有TB的数据。我正在获取物理硬件的报价,以构建我们的分片环境。当您的数据变得相当大时,您会希望进行分片。目前我们使用一台机器,但我计划至少有4台机器来处理分片。我们正在早期开发开发阶段,正在尝试选择一种方法。为了更好地理解MongoDB是如何在多台机器上共享网格的,我的清单上有一个问题。我的主要问题是,如果我有4台机器,我是否可以指示MongoDB始终在4台机器中的2台机器上保留数据以进行冗余。此外,如果以后我想将其增加到4台机器中的3台,我是否可以轻松地执行?每个碎片比较增加一个副本集(至少3台服务器)。我认为配置和路由过程还需要额外的服务器。我认为总共需要5台服务器。为了回答您的问题,您需要向环境中添加更多的碎片来处理负载。