小弟对服务器架设这一块一直是一个文盲,有几个问题一直没有搞懂,所以请大家教教我
现在有一个项目,需要用到流媒体服务器,我希望把流媒体服务器单独放在一台机器上,暂且称之为A机器,web容器放在另外一台机器上,暂且称之为B机器,现在当用户访问web服务器的时候,上传了一些视频,这些视频是存在B机器上的,但是这些视频需要进行格式转换成flv,这一步操作非常耗时,然后把转换后的flv视频放入到流媒体服务器既A机器的的某个文件夹中(流媒体服务器用的是FMS),请问,我该如何去做?这是不是就是所谓的集群?大概的流程如下图所示:
[img]http://dl.iteye.com/upload/attachment/537628/ddaca225-0503-313a-8509-fef7505a5fde.png[/img]
请各位多给点实质性的回答,路过之类的就不要回帖了谢谢 :D 。小生在此谢谢了。万分感谢。。。。。分不多。总共就13分,拿出一半,留下一半应急。。。。
不是集群问题,而是文件的分布式存储和访问的问题。
因为你的A服务器和B服务器都需要访问相同的文件资源,这就是分布式了,那么对于分布式访问,最简单的办法就是利用NFS,网络文件系统。
NFS,就是你在A机上设定一个目录用于保存上传的文件,然后把它挂载到B机上,这样通过NFS协议,B机就能如同访问本地文件一下访问A机的文件了。反过来,也是一样,如果需要A机访问B机的问题,也可以这样做。
对于分布式文件访问,NFS是比较简单的,因为它是操作系统提供支持的。所以设置和使用都很简单。但NFS的性能相对不会那么好,服务器的伸缩性和管理方面也不是很好。
另外还有采用分布式文件系统的方式来实现,比如HDFS(Hoodap的分布式文件系统),但这样的开发难度较大。比较容易使用的是MongoDB提供的文件保存方式(GridFS),这也是一个分布式的文件系统,利用MongoDB可以很好实现伸缩性问题,文件的读写和数据库访问一致,使用起来也很方便。
最后,你可以通过独立的文件服务器来实现分布式访问。基本思想就是:所有文件保存在文件服务器上,对文件的访问通过统一的查找,比如数据库保存文件唯一标识和保存的服务器目录,这样也能达到分布式访问的目的。不过这种方式,需要你自己实现文件到文件保存的对应算法(有可能文件服务器是一个集群),访问文件也需要自己来控制读写。难度比较大。