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

File upload 服务器负载&;大规模上传的可扩展性,file-upload,scalability,File Upload,Scalability,我想上传数以百万计的音频项目由用户到我的服务器。当前的应用程序设计为提供内容,对其进行转码,最后通过ftp发送到存储服务器。我想知道: 在扩展到更多服务器(承载web应用负载)后,应用服务器是否能够承担用户的巨大任务,如评论、上传、转码 如果以上问题的答案是肯定的,那么这是正确的、最好的方法吗?因为一个好的体系结构是将转码发送到存储服务器,等待完成任务并发送响应到应用服务器,但同时它具有更高的复杂性和不安全性 这类网站的常用方法是什么 如果我将上载和转码作业发送到存储服务器,它是否在长期可扩展性

我想上传数以百万计的音频项目由用户到我的服务器。当前的应用程序设计为提供内容,对其进行转码,最后通过ftp发送到存储服务器。我想知道:

  • 在扩展到更多服务器(承载web应用负载)后,应用服务器是否能够承担用户的巨大任务,如评论、上传、转码

  • 如果以上问题的答案是肯定的,那么这是正确的、最好的方法吗?因为一个好的体系结构是将转码发送到存储服务器,等待完成任务并发送响应到应用服务器,但同时它具有更高的复杂性和不安全性

  • 这类网站的常用方法是什么

  • 如果我将上载和转码作业发送到存储服务器,它是否在长期可扩展性方面与企业存储技术兼容

  • 5-当前应用程序基于PHP。是否可以将tmp文件夹移动到其他服务器以克服上载过载

    感谢您的回答,tmp文件夹问题5。我指的是Apache中的tmp文件夹。我知道,在移动到最终存储目标(例如:存储服务器或任何解决方案)之前,所有上载的文件都存储在apache的tmp文件夹中。我想知道这是否是apache的规则,所有上传的文件都应该首先在app server中找到,那么我如何控制、扩展和重定向这些海量存储到临时存储或服务器?我指的是作为appche的tmp文件夹的服务器或存储解决方案,在发送到最终存储位置之前,只是上传文件的访客。我已经研究并设计了所有关于数据库扩展、存储、负载平衡、memcache等方面的内容,但这是我尚未解决的问题之一。用户新到达主服务器的文件将在何处发生?这方面的常见解决方案是什么?(在一个盒子解决方案中,所有文件在appche的tmp目录中都是临时的,但对于大量内容和缩放系统?)。
    关于

    由于我觉得我无法回答这个问题(我想添加一条评论,但我的文字太长了),我有一些想法:

  • 如果您正在创建一个如此大的系统(听起来如此),您应该进行一些性能测试,看看有多少并发连接/上载,。。。无论您的体系结构能够处理什么。正如我常说的:如果你不知道:“不,它不会”

  • 我认为处理重载的最佳方法(这是:大量上载,需要来自appserver的大量阻塞线程(->这意味着,我不会使用appserver来处理文件上载)。异步执行所有重载操作(转码)(例如,将上载的文件排队,然后对其进行处理)。在任何情况下,应用程序服务器都不应等待代码转换系统的响应->只需告诉用户,他的文件将被处理,并在处理完成后向用户发送消息(或其他任何消息)。您可以使用gearman之类的工具

  • 我会搜索需要处理大量上传/转换的现有架构(例如flickr),只需转到slideshare并搜索“flickr”或“可伸缩web架构”

  • 我不太明白这一点,但我会根据服务器的任务使用服务器(例如应用服务器、数据库服务器SM、转码服务器、存储等)——每台服务器都应该做什么,他能做得最好

  • 当你说tmp文件夹的时候,我不知道你在说什么


  • 祝你好运

    你可能想看看Viddler架构:

    我同意Bernhard的答案。你不能指望同时处理数百万用户同时同步转换文件。让用户上传文件,然后在后台完成繁重的工作,或者将其发送到其他服务器。您还必须意识到,企业存储解决方案的可扩展性只取决于您的钱包大小。老实说,我认为我无法直接回答您的问题,也无法为您提供如何配置亚太地区的提示他,你的文件系统等等,但我会将所有系统分开,这样子系统的中断不会影响你的完整服务。可能有一些服务器更适合在Apache上进行大量上传,也许你可以从其他用户那里得到一些提示,这些用户对不同的Web服务器有更高的过期率(lighttp似乎不错,但我没有任何数字)。我再次建议搜索存在类似问题的现有项目(例如大量上传)。