我正计划建立一个系统,通过负载平衡为服务器集群中的映像文件提供服务。我正在与架构进行斗争,以及是将实际的图像文件保存为数据库中的blobs还是文件系统中的blobs。
我的问题是,数据库连接无论如何都是必需的,因为用户需要进行身份验证。不同的用户只能访问他们的朋友的内容和自己上传的项目。既然连接是必需的,那么也可以从那里检索到图像吗?
图像应该存储在没有单一故障点的地方。显然,系统应该是快速的。
对于数据库方法:数据库与我的应用程序的其他部分是分开的,所以我的应用程序主数据库不会被所有的图像膨胀。数据库很容易扩展,因为我只需要向集群中添加更多的服务器。问题是,我听说这可能是一个缓慢的系统从一个网站数百万,甚至数十亿张照片。
对于文件系统:我很想知道如何设计一个系统,在这个系统中,too服务器是负载平衡的,而且没有一个对整个系统来说太重要了。所有服务器都应该使用公共存储,这样它们就可以访问集群中的相同文件。
你认为如何?在这种情况下,哪一个是最好的解决方案?
对于映像服务集群,您会推荐什么样的总体架构和服务器?注意:这个集群只提供图像。应用服务器是完全不同的故事。
发布于 2011-02-24 15:21:31
我绝对不会把它们存储在数据库里。如果您需要使用PHP进行身份验证,那么请尽快这样做,并使用X将实际的映像传递给您的web服务器。
对于文件系统来说,这听起来很适合MogileFS。
对于web服务器,我建议使用nginx。如果您可以调整身份验证机制以使用现有模块之一,或者为其编写自己的模块,则可以完全省略PHP (已经有一个MogileFS客户端模块)。
https://stackoverflow.com/questions/5106558
复制相似问题