图像托管站点的体系结构

时间:2011-05-13 21:19:23

标签: database image architecture hosting replication

方案:
*用户上传图像并输入有关该图像的一些信息 *信息和图像上传(到所有服务器)
*用户确认图像已上传

因素:
*数十台服务器,分布在世界各地 *图像最终应该在磁盘上,因为它将被提供服务 *信息应最终存入数据库中 *图像很小,不大于5mb

我们考虑了各种架构解决方案和技术(git murderrsync仅举几例),但我们仍然不是100%如何处理这个问题。当前的解决方案太慢了,我们正在寻求改进(我们将文件从“上传”服务器推送到所有服务器)。

有什么想法?提前致谢

2 个答案:

答案 0 :(得分:0)

首先,为简单起见,我们假设数据被写入文件,两个文件一起压缩。所以下面我假设只有一个文件(zip文件)。这只是一个细节(对于bittorrent来说实际上是完全没必要的!)

对于大型文件,Bittorrent(或以类似方式工作的东西)基本上是最快的方法。一旦服务器下载了一段文件,它就会开始尝试将其上传到需要它的任何其他服务器。您可以修改bittorrent以优先选择地理上更接近的IP,以最大限度地减少LAN间带宽的使用。

如果您不需要使用bittorrent,或者如果文件很小而没有意义,只需将一台服务器上传到另外两台,然后将其他两台服务器上传到另外两台,等等。或者你可以使用超过2的扇出系数。尝试最适合你的方法。

答案 1 :(得分:0)

看看Riak。它为大规模分发和数据复制提供了非常好的支持。我们已经成功使用它已经有一段时间了,而且它已经证明非常有弹性。

我在Riak上建模,图像和元数据分开存储,它们之间有链接。它们都以这种方式进入“数据库”和磁盘,通过简单的方式将表单转换为另一个并通过URL访问。

注意:对于通过WAN进行复制,您需要企业版,这不是免费的。