例如Google或Facebook这样的网站如何处理它收到的数十亿页面浏览量?
我知道循环DNS,我知道它为访问者A提供一个IP,然后以循环方式向访问者B提供另一个IP,依此类推.
这些网站是否运行几台(百?)服务器,每台服务器上都有“google”网站的副本,并且都是同步的?
试图总结一下 – 拥有数百万页面浏览量的超大型网站如何实际处理流量?他们是如何保持的?一个人去哪里获得设置的经验?
我想了解更多,但实际上没有这种设置的需要,我发现很难获得案例研究或材料以了解更多信息.
希望这有一定程度的意义.谢谢.
解决方法
–
小型网络服务器变得非常普遍,你通常会看到像Apache,Tomcat或IIS这样的网络服务器,也可能有一个数据库(Postgresql,sql Server或MySQL),也可能有一个编程层(PHP,Python,Ruby,Java等).
对于更大但仍然很小的设置,你将这些层分成不同的服务器 – 两个运行Apache同时查看相同的共享文件,两个运行数据库,每个数据一半,可能是另一个进行缓存,或者你可能只是让它们变得强大你可以负担得起.这可以让你走得很远 – 2007年,Plenty of Fish进入HitWise排名前100的网站,每小时提供200万次观看,with 1 server并将图像托管外包给Akamai.
如果你有钱,例如政府,航空业等,您可以通过迁移到大型专业服务器(例如刀片中心,数十个处理器的Sun服务器,存储设备中的数十个磁盘和Oracle数据库等)来扩展.
对于其他人来说,如何扩大便宜的问题仍然没有答案.他们如何做到这一点是他们公司的核心问题之一,他们将花费大量精力进行定制.
它可能包含许多涉及许多数据库服务器的有趣方法.不是谷歌,they wrote their own filesystem和database replacement on top.您可能会看到分片(在一台服务器中分割您的内容AM,在另一台服务器中分割新西兰)或复制(所有服务器具有相同的数据,读取来自任何服务器,写入所有服务器)或其他内容定制.
它可能包含许多缓存服务器,例如运行Memcached.这些将拥有大量RAM并快速返回最近才完成的数据库查询,这些文件最近已被请求过. 2008年,Facebook表示“我们使用超过800台(memcached)服务器为我们的用户提供超过28TB的内存.” link
您可能会找到一些CDN服务(内容传送网络),例如Akamai,您可以在其中为所有图片提供所有图片并将它们传播到世界各地并链接到它们并自动从其网络向最近的用户提供服务.
您还会发现许多自定义代码和人们努力工作但保守秘密.服务eBay拍卖意味着处理大量流量,但单个拍卖项目的数据大多是静态的,但搜索eBay拍卖意味着大量的数据处理.谷歌搜索网络意味着大量的数据处理,但以不同的方式 – 不同的数据存储在不同的服务器上. Facebook意味着许多信息传递给许多用户,而Twitter也是如此,但具有不同的特征.谷歌和Facebook设计自己的服务器硬件.