我目前正在将我们的网页视频转换部分(有点像youtube用户上传视频,我们将它们转换为flv/mp4)分离到另一台服务器.我已经在同一台机器上使用gearman运行系统.因此,当用户将视频文件上传到服务器A时,由同一服务器A上的齿轮工人挑选.
现在我将工作人员移动到服务器B.因此服务器B上的工作人员需要访问服务器A上的上传文件.目前我使用SCP将文件从A复制到B然后处理它.这种方法有效,但我觉得应该有一个更干净的方法,但我没有找到任何有关向齿轮工人发送文件(或大文件)的信息.你会如何解决这个问题?
优选地,客户端将视频文件作为命令的一部分发送以启动后台作业,因此我不必担心文件实际来自工作者的位置.这样我就可以添加更多转换服务器而不会有太多麻烦.
我正在为我的网页和工作人员使用PHP(带有Gearman 扩展名).
正如评论中所建议的那样,拥有共享FS是实现这一目标的(通常)方式,并且只是在来自gearman的作业请求中传递路径.Gearman不适合传递大量数据,因为它必须将所有信息保存在内存中.它从未设计用于处理大文件的传输和分发.由于MogileFS最初也是在Danga开发的,因此根本不需要在Gearman中整合文件传输和处理(这是一件好事,有很多技术可以比Gearman更好地解决这个问题).
当视频到达时,我们使用NFS处理分布式工作,并且编码器将编码后的视频放回到公共可用的NFS共享上.还没有一个严重的问题,NFS是稳定的,它的问题是众所周知的,已经解决了你会看到的那种负载.