服务器负载&大规模上传的可扩展性

时间:2011-08-14 14:32:16

标签: file-upload scalability

我想将用户上传的数百万个音频项目上传到我的服务器。当前的应用程序旨在提供内容,转码它们,最后通过ftp发送到存储服务器。我想知道:

  1. 应用服务器是否可以承担用户的大量任务,例如在扩展到更多服务器后进行评论,上传和转码(以承载网络应用程序负载)?

  2. 如果上述问题的答案是肯定的,那么它是否正确且最佳方法?因为良好的架构将向存储服务器发送转码等待完成作业并向应用服务器发送响应,但同时它具有更多的复杂性和不安全性。

  3. 此类网站的常用方法是什么?

  4. 如果我将上传和转码作业发送到存储服务器是否与企业存储技术兼容,具有长期可扩展性?

  5. 5-目前的应用程序基于PHP。是否可以将tmp文件夹移动到另一台服务器以克服上传过载?

    感谢您的回答,对于tmp文件夹问题编号5.我的意思是Apache中的tmp文件夹。我知道在移动到最终存储目的地之前所有上传的文件(例如:存储服务器或任何解决方案)都存储在apache的tmp文件夹中。我想知道这是否是apache的规则,所有上传的文件应该首先位于应用服务器中,那么我如何控制,扩展和重定向这个大量的存储负载到临时存储或服务器?我的意思是服务器或存储解决方案作为appche的tmp文件夹,在发送到最终存储位置之前只是上传文件的来宾。我已经研究和设计了有关数据库,存储,负载平衡,内存缓存等扩展的所有内容,但这是我未解决的问题之一。用户到主服务器的新到达文件将在缩放的架构师中进行?对此有什么共同的解决方案? (在一个盒子解决方案中,所有文件都将在appche的tmp目录中是临时的,但对于大量内容和缩放系统?)。 此致

2 个答案:

答案 0 :(得分:4)

因为我觉得我不能回答这个问题(我想添加评论,但我的文字太长了),有些想法:

  1. 如果您正在创建这么大的系统(听起来如此),您应该进行一些性能测试,看看有多少并发连接/上传,......您的架构可以处理什么。正如我经常说的:如果你不知道:“不,它不能”。

  2. 我认为处理繁重负载的最佳方式(这是:大量上传,需要从appserver中阻止很多线程( - >这意味着,我不会使用Appserver来处理fileuploads。。异步执行所有繁重的操作(转码)(例如对上传的文件进行排队,然后处理它们。)无论如何,Applicaiton服务器不应该等待转码系统的响应 - >告诉用户,他的文件将被处理并在完成时向他发送一条消息(或其他)。你可以使用像gearman这样的东西。

  3. 我会搜索现有的架构,必须处理大量的上传/转换(例如flickr),只需转到slidehare并搜索“flickr”或“可扩展的网络架构”

  4. 我真的不明白这一点 - 但我会根据他们的任务使用服务器(例如Applicaiton服务器,数据库服务器,Transconding服务器,存储......) - 每个服务器应该做什么,他能做什么最好

  5. 当你说tmp文件夹时,我恐怕不知道你在谈论什么。

  6. 祝你好运

答案 1 :(得分:4)