会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 建站经验 > 详解知名网站的手艺成长过程

详解知名网站的手艺成长过程

时间:2012-05-25 18:41:35   作者:   来源:   点击:

文 / 林昊

互联网已经成长多年,其中不乏脱颖而出者,这些网站大都都已存在了接近10年或10年以上,在如此长时间的成长过程中,除业务上面临的挑战,在手艺上也面临了很多的挑战。我挑选了一些Alexa排名较前的网站(排名截止到2012年4月21日),看看它们在手艺上是如何应对业务成长过程中的挑战的。

谷歌目前Alexa 排名第1。它出世于1997年,那时是一个研究性项目,每个月build一次索引,build出来的索引通过sharding(shard by doc)的体例分离到多台办事器(Index Server)上,具体的网页数据同样通过sharding的体例分离到多台办事器(Doc Server)上,当用户提交请求时,通过前真个一台办事器将请求提交给Index Server取得打了分的倒排索引,然后从Doc Server提取具体的网页信息(例如网页题目、搜索关头词匹配的片段信息等),最终展现给用户。

随着索引的网页增加,这个布局可通过增加Index Server以及Doc Server来存储索引以及网页的数据,但仍然接见会面临其他很多方面的问题,于是在这之后的十多年的时间里,谷歌做了很多事情来改进上面的布局。

1999年,谷歌增加了一个Cache Cluster,用来Cache查询的索引成果和文档片段信息,同时将Index Server和Doc Server通过Replicate的体例酿成了Cluster。这两个改革带来的益处是网站的响应速度、可支撑的拜候量以及可用性 (Availability)取得了提升。这个转变造成了本钱的增加,谷歌在硬件方面的气概始终是不消昂贵的高端硬件,而是在软件层面来包管系统的靠得住性及高性能,于是同年,谷歌起头采取自行设计的办事器来下降本钱。2000年,谷歌起头自行设计DataCenter,采取了各类体例(例如采取其他的制冷体例来替代空调)来优化PUE(能源操纵率),同时对自行设计的办事器也做了很多化。2001年,谷歌对Index的格局进行了修改,将所有的Index放入内存, 这次改革带来的益处是网站的响应速度以及可支撑的拜候量取得了极年夜的提升。2003年,谷歌颁发了文章谷歌 Cluster Architecture,其Cluster布局组成为硬件LB+Index Cluster+Doc Cluster+年夜量便宜办事器(例如IDE硬盘、性价比高的CPU等),通过并行措置+sharding来包管在下降对硬件要求的同时,响应速度仍然很快。同年谷歌颁发了关于谷歌文件系统的论文(GFS在2000年就已经上线),这篇论文很年夜水平也体现了谷歌不消昂贵硬件的气概,通过GFS+年夜量便宜的办事器便可存储年夜量的数据。2004年,谷歌再次对Index的格局进行了修改,使得网站的响应速度继续提升。同年 谷歌颁发关于MapReduce的论文,通过MapReduce+年夜量便宜的办事器便可快速完成以前要使用昂贵小型机、中型机甚至是年夜型机才能完成的计较任务,而这显然对谷歌快速地构建索引提供了很年夜的帮忙。2006年,谷歌颁发了关于BigTable的论文(2003年起头上线),使得海量数据的阐发能够达到在线系统的要求了,这对谷歌提升网站的响应速度起到了很年夜的帮忙。

以上3篇论文完全改变了业界对海量数据的存储、阐发和检索的体例(小道消息:谷歌内部已完成了GFS、MapReduce、BigTable的替换),也奠定了谷歌在业界的手艺带领地位。

在一些场景中,谷歌也采取MySQL来存储数据。同样,谷歌对MySQL也做了很多修改,它使用的MySQL信息可以从https://code.谷歌/p/谷歌-mysql/体会。

2007年,谷歌将 build索引的时间缩短到分钟级,当新网页呈现后,几分钟后便可在谷歌搜索到,同时将Index Cluster通过Protocol Buffers对外提供Service,以供谷歌各类搜索(例如网页、图片、新闻、书籍等)使用,除Index Cluster提供的Service外,还有很多其他的Service,例如告白、词法查抄等。谷歌的一次搜索年夜概需要挪用内部50个以上的 Service,Service主要用C++或Java来编写。2009年,谷歌的一篇《How 谷歌 uses Linux》文章,揭露了谷歌在提升机械操纵率方面也做了很多的努力,例如将不合伙源消耗类型的应用摆设在同一台机械上。

在之后,谷歌又研发了Colossus(下一代类GFS文件系统)、Spanner(下一代类BigTable海量存储和计较架构)、实时搜索(基于Colossus实现),主要都是为了提升搜索的实时性以及存储更大都据。除在海量数据相关手艺上的改革外,谷歌也不竭对业界的传统手艺进行创新,例如提高TCP 的初始拥塞窗口值、改进HTTP的SPDY协议、新的图片格局WebP等。

分享到:

网友评论

热门建站经验