揭秘YouTube背后,探悉其服务器规模与强大技术支撑

YouTube采用的服务器技术解析

1、Lighttpd是一款高性能的Web服务器软件,而YouTube正是借助Lighttpd来承载其庞大的流量,Lighttpd不仅支持Flash streaming和fastcgi,还能显著提升Ruby on Rails等程序的速度,其设计宗旨“lighttpd fly light”寓意着轻盈高效,通常情况下,用户在浏览器中是看不到它的。

2、成立于2005年的YouTube在2006年被谷歌以165亿美元的高价收购,其后端微服务架构主要基于Python、MySQL、Python(采用Guice框架)、Go以及JavaScript构建,核心数据库使用了Vitess,这是一个专门为MySQL设计的水平扩展数据库集群系统,辅以Memcache进行缓存和Zookeeper进行节点协调,热门视频通过CDN分发,而冷门视频则直接从数据库中获取。

3、YouTube的Web服务器主要采用Python语言开发,以追求更快的开发速度,部分服务器使用Apache,并采用FastCGI模式,对于视频内容的处理,YouTube选择使用Lighttpd,据了解,MySpace也有部分服务器采用Lighttpd,但数量并不大,YouTube无疑是Lighttpd应用最成功的案例之一。(使用Lighttpd的站点相对较少,但豆瓣网的使用体验相当出色。)

大型视频网站的技术架构方案探究

揭秘YouTube背后,探悉其服务器规模与强大技术支撑  第1张

1、SHE-VHO-VSO模型——这是一种分层的架构模式,超级头端”(SHE)负责汇集大范围或全国的内容,并提供实时的全国内容,通常使用IP作为网络层协议。“视频中心局”(VHO)与SHE协同工作,将本地与区域内容整合到内容组合中,确保全国和本地内容的均衡供应。

2、在用户互动与大规模直播之间,直播客户架构有多种构建方式,如Nginx、flv、rtmp等,使用Nginx搭建流媒体服务,首先下载Nginx源码,编译安装并配置Nginx,接着下载Nginx RTMP模块,按照步骤配置Nginx RTMP模块,编译安装Nginx,修改配置文件,最后启动服务。

3、在数据库集群解决方案方面,众多数据库厂商都提供了各自的方案,如Oracle、Sybase等,常用的MySQL也提供了Master/Slave等类似方案,根据您使用的数据库类型,可以参考相应的解决方案进行实施。

4、解码技术根据终端类型的不同,主要分为几类:PC端解码技术,如当前视频网站普遍采用的H.264视频解码技术(如Adobe Flash Player)、VLC和FFMPEG等桌面客户端软件(支持包括H.265在内的多种视音频格式解码);移动终端解码技术,目前主要分为Android和iOS两大阵营。

5、优化源站点负载,有效节省网站分布式架构的运营成本和运维成本,是构建高效视频网站的关键之一。