2010-10-01 81 views
0

我正在开发一个项目,我需要存储许多用户上传的文件并提供冗余。对于文件上传,我首先考虑将用户上传的文件放在NFS“uploads”目录中,然后使用Gearman抓取该文件,将其移至永久性存储位置,然后使用文件info(文件大小,日期等...)更新MySQL。等等)。用于HA文件存储的MongoDB GridFS

现在我已经了解了MongoDB的GridFS,我认为这可能比NFSGearman更好。使用GridFS,我不需要NFS并且内置冗余 - 但是我将对MongoDB产生很大的信任。

这一切都说,我想知道如果有人有任何想法?有谁知道GridFS的大型部署?我知道很多人都在使用MongoDB进行NoSQL,但是我还没有发现很多对GridFS部署的引用。

谢谢!

回答

1

我们正在使用GridFS作为我们的项目之一。我还使用齿轮工分配作业队列,以便客户端不必等待文件完成上传。一旦用户点击提交,PHP将作业发送给gearman,然后我有“工作人员”来插入MongoDB。

+0

如果你不介意我问,你在GridFS中存储了多少数据以及多少台机器? – Ethan 2010-10-01 19:53:14

+0

对于无档案工程的项目(不确定开发人员是否会实施档案管理员),这是一个文件共享应用程序,我们预计至少有一个TB数据。我正在获取物理硬件的引用来构建我们的分区环境。当你的数据变得非常大时,你会想要分割。现在我们使用一台机器,但我打算至少有4台机器来处理分片。 – luckytaxi 2010-10-01 19:56:34

+0

我们正处于早期发展阶段,正试图选择一种方法。为了更好地理解MongoDB如何在不同机器上分割GridFS,我已列在清单上。我的主要问题是,如果我有4台机器,我可以指示MongoDB始终将4台机器中的2台数据用于冗余。另外,如果以后我想把这个增加到4的3个,我可以轻松吗? – Ethan 2010-10-01 20:00:27

0

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