Performance 维护视频网站性能

Performance 维护视频网站性能,performance,video,load-balancing,Performance,Video,Load Balancing,我正在建立一个在线视频播放网站(如)。我的技术挑战是在提供大量点击率的同时保持性能 我目前的解决方案是设置几个后端服务器,让每个服务器缓存视频的一部分,这样可以节省从磁盘I/O读取视频文件的时间 另一个前端服务器将散列请求视频ID,以找出视频驻留在哪个服务器上,然后要求客户端浏览器重定向到特定服务器 我的解决方案很简单,我想知道是否有其他人对我的解决方案有更好的想法或技术考虑 请注意:我想建立一个本地工作的网站(而不是依赖像Alakami这样的提供商),因为内容是为我所在学校的本地学生提供的。

我正在建立一个在线视频播放网站(如)。我的技术挑战是在提供大量点击率的同时保持性能

我目前的解决方案是设置几个后端服务器,让每个服务器缓存视频的一部分,这样可以节省从磁盘I/O读取视频文件的时间

另一个前端服务器将散列
请求视频ID
,以找出视频驻留在哪个服务器上,然后要求客户端浏览器重定向到特定服务器

我的解决方案很简单,我想知道是否有其他人对我的解决方案有更好的想法或技术考虑



请注意:我想建立一个本地工作的网站(而不是依赖像Alakami这样的提供商),因为内容是为我所在学校的本地学生提供的。这本质上是一个“内部网”解决方案。

您是否在IIS7的Windows上托管此解决方案?如果是这样的话,他们有一个模块让IIS对视频进行节流,这样视频流就不会更快,用户就可以真正观看视频了。

一个非常高性能的解决方案是使用一种数据分发服务,如。他们在世界各地提供服务器空间,并且已经解决了性能问题。此外,由于他们在世界各地都有数据中心,您的数据不必走得很远,这对互联网和您都有好处(因为Akamai可以对相同数量的数据收取较低的费用)。

当所有用户请求相同的视频时,您的解决方案将无法正常运行。更好的解决方案是在所有服务器上提供所有视频,并使用负载平衡服务器将当前请求重定向到打开的提要数最少的服务器

请注意,存储后端(RAID阵列、SAN)可以以非常高的速率提供数据,因此您通常可以为多个视频服务器使用一个存储系统(即每N个视频服务器一个存储系统和一个负载平衡器(如果需要故障切换,可以使用两个)

这里一个好的解决方案是在协议中使用“重定向”命令:

  • 客户端向负载均衡器(LB)请求视频
  • LB告诉客户端使用哪个视频服务器(VS)。这是一个简单的“用最少的开放提要查找VS”
  • 客户端直接连接到VS(以避免所有开销)
  • VS告诉LB当前打开的提要数量(此处不要使用增量方法来避免同步问题)
  • VS开始将数据流传输到客户端
  • 当客户端断开连接时,VS会告诉LB新的提要数
  • [编辑]让客户端直接连接到视频服务器的主要原因是网络吞吐量。如果所有虚拟机都将其数据发送给LB并将其传递给客户端,则您将自己的速度限制为LB的单(或双)网卡的速度。如果您有5个虚拟机,则直接连接时可以获得5倍的吞吐量。此外,当更多用户使用时,只需添加另一个视频服务器,将其插入主干网,并在LB列表中添加一个条目,就可以轻松扩展系统。

    如果您的用户分布在世界各地,请尝试亚马逊的CloudFront(CDN)。如果您的用户是本地化的(美国/欧洲),则可以使用S3

    此外,您还可以尝试使用Nginx(一种web服务器),它在服务大型文件方面非常高效


    这样,您就不必在应用程序中处理不必要的架构复杂性。

    谢谢Aaron Digulla,我想自己设置,因为内容是为我所在学校的本地学生准备的。无需对外开放内容,也无需为全世界人民服务。:-)我的挑战是你是否有更好的想法或我的解决方案的任何技术问题?请记住,很多人会搜索和阅读你的问题。因此,有一个不完全适合你的问题,但可能帮助其他人的答案是一件好事。或者:当有100个问题与你的问题相似时,很难找到答案。谢谢,我同意。我的问题是在本地设置,并在内部网中为内部网用户(如学校)提供本地服务。那么,您对我的原始问题中的技术解决方案有什么意见或更好的想法吗?:-)两条评论,1。我正在使用IIS 6.0。我可以在Windows Server 2003上安装IIS 7.0吗?2.另一个问题是,我需要的是一个提交/批准发布/分类系统,而不仅仅是流媒体解决方案。我认为IIS 7.0的解决方案只提供流媒体,没有其他部分?嗨,Josh,我想到了另一个问题。对于IIS 7.0,只有一台机器,网络能力非常有限。IIS 7.0视频解决方案中是否有内置的解决方案可以将两台服务器集群起来进行负载平衡?我已经用您评论中的重要信息更新了您的问题!您能否提供更多信息,说明在峰值时您预计有多少用户,以及您正在使用哪些技术(Flash视频?Windows Media?)嗨,Paul!谢谢你的关注。我更喜欢使用闪光灯,但使用Silverlight也可以。在当前估计中,峰值用户数可能约为1000。有什么技术想法吗?很酷的解决方案!一个问题,你的意思是什么--“所以你经常可以用一个存储系统来存储多个视频服务器。”?你是说用一台服务器存储视频就足够了还是?对不起,我不是以英语为母语的人。如果你能用别的话说,我将不胜感激。:-)抱歉,还有一条评论,您认为从LB端实现重定向的最简单、最优雅的方法是什么。您有一个包含所有磁盘的盒子。我有一个可以提供530MB/s的RAID阵列。理论上,这可以为大约5个通过1GB链路连接的客户端提供服务器。(1GBit~100MB/s)重新重定向:如果您通过一个盒子从视频服务器中抽取所有数据,您将赢得什么?您将限制自己使用该盒子的网卡。如果每个客户端都直接连接到VS,那么吞吐量将增加N倍