2011-02-24 86 views
1

我正在计划一个系统,用于从具有负载平衡的服务器群集提供映像文件。我正在与建筑作战,是否将实际的图像文件保存为数据库或文件系统中的斑点。通过HTTP提供图像。负载平衡高可用架构

我的问题是,数据库连接是必需的,因为用户需要进行身份验证。不同的用户只能访问自己上传的朋友的内容和项目。由于无论如何都需要连接,也许图像可以从那里检索?

图像应该没有单点故障存储。显然,系统应该很快。

对于数据库方法: 数据库与我的应用程序的其余部分是分开的,所以我的应用程序主数据库不会因所有图像而变得臃肿。数据库将很容易扩展,因为我只需要将更多服务器添加到群集。问题是,我听说这可能是一个网站缓慢的系统,数百万甚至数十亿张照片。

对于文件系统: 我将是一个知道如何设计一个系统,其中Web服务器进行负载平衡,其中没有一个是对整个系统来说太重要了真正的兴趣。所有的服务器都应该使用公共存储,以便他们可以访问群集中的相同文件。

您认为如何?在这种情况下哪个是最好的解决方案?

对于图像服务集群,您会推荐什么样的整体架构和服务器?注意:此集群只有提供图像。应用程序服务器是完全不同的故事。

回答

1

我绝对不会将它们存储在数据库中。如果您需要使用PHP进行身份验证,请尽快执行此操作,并使用X-SendFile将提供给您的Web服务器的实际图像移交给您。

对于文件系统,听起来像MogileFS将是一个很好的选择。我想建议nginx。如果您可以调整您的认证机制以使用existing modules之一,或者为它编写自己的模块,则可以完全省略PHP(已经有MogileFS客户端模块)。

+0

感谢您的帮助!我看了一下你提到的那些东西,一定会使用xSendFile!不知道,是否使用lighttpd或nginx的httpd。该MogileFS也似乎很需要我! – FinDev 2011-02-24 15:50:47