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

站长资源综合门户

当前位置:首页 > 站长学院 > 服务器 > Tumblr:150亿月浏览量背后的架构挑战

Tumblr:150亿月浏览量背后的架构挑战

时间:2012-02-27 21:06:53   作者:   来源:   点击:

导读:和许多新兴的网站一样,著名的轻博客服务Tumblr在急速发展中面临了系统架构的瓶颈。每天5亿次浏览量,峰值每秒4万次请求,每天3TB新的数据存储,超过1000台服务器,这样的情况下如何保证老系统平稳运行,平稳过渡到新的系统,Tumblr正面临巨大的挑战。近日,HighScalability网站的Todd Hoff采访了该公司的分布式系统工程师Blake Matheny,撰文系统介绍了网站的架构,内容很有价值。我们也非常希望国内的公司和团队多做类似分享,贡献于社区的同时,更能提升自身的江湖地位,对招聘、业务发展都好处多多。欢迎向我们投稿。

以下为译文。(括号内小号字为CSDN编辑所注)

Tumblr每月页面浏览量超过150亿次,已经成为火爆的博客社区。用户也许喜欢它的简约、美丽,对用户体验的强烈关注,或是友好而忙碌的沟通方式,总之,它深得人们的喜爱。

每月超过30%的增长当然不可能没有挑战,其中可靠性问题尤为艰巨。每天5亿次浏览量,峰值每秒4万次请求,每天3TB新的数据存储,并运行于超过1000台服务器上,所有这些帮助Tumblr实现巨大的经营规模。

创业公司迈向成功,都要迈过危险的迅速发展期这道门槛。寻找人才,不断改造基础架构,维护旧的架构,同时要面对逐月大增的流量,而且曾经只有4位工程师。这意味着必须艰难地选择应该做什么,不该做什么。这就是Tumblr的状况。好在现在已经有20位工程师了,可以有精力解决问题,并开发一些有意思的解决方案。

Tumblr最开始是非常典型的LAMP应用。目前正在向分布式服务模型演进,该模型基于Scala、HBase、Redis(著名开源K-V存储方案)、Kafka(Apache项目,出自LinkedIn的分布式发布-订阅消息系统)、Finagle(由Twitter开源的容错、协议中立的RPC系统),此外还有一个有趣的基于Cell的架构,用来支持Dashboard(CSDN注:Tumblr富有特色的用户界面,类似于微博的时间轴)

Tumblr目前的最大问题是如何改造为一个大规模网站。系统架构正在从LAMP演进为最先进的技术组合,同时团队也要从小的创业型发展为全副武装、随时待命的正规开发团队,不断创造出新的功能和基础设施。下面就是Blake Matheny对Tumblr系统架构情况的介绍。 

网站地址

.tumblr/ 

主要数据

每天5亿次PV(页面访问量)

每月超过150亿PV

约20名工程师

峰值请求每秒近4万次

每天超过1TB数据进入Hadoop集群

MySQL/HBase/Redis/memcache每天生成若干TB数据

每月增长30%

近1000硬件节点用于生产环境

平均每位工程师每月负责数以亿计的页面访问

每天上传大约50GB的文章,每天跟帖更新数据大约2.7TB 

软件环境

开发使用OS X,生产环境使用Linux(CentOS/Scientific)

Apache

PHP, Scala, Ruby

Redis, HBase, MySQL

Varnish, HAProxy, nginx

memcache, Gearman(支持多语言的任务分发应用框架), Kafka, Kestrel(Twitter开源的分布式消息队列系统), Finagle

Thrift, HTTP

Func——一个安全、支持脚本的远程控制框架和API

Git, Capistrano(多服务器脚本部署工具), Puppet, Jenkins 

硬件环境

500台Web服务器

200台数据库服务器(47 pool,20 shard)

30台memcache服务器

22台Redis服务器

15台Varnish服务器

25台HAproxy节点

8台nginx服务器

14台工作队列服务器(Kestrel + Gearman) 

架构

1. 相对其他社交网站而言,Tumblr有其独特的使用模式:

每天有超过5千万篇文章更新,平均每篇文章的跟帖又数以百计。用户一般只有数百个粉丝。这与其他社会化网站里少数用户有几百万粉丝非常不同,使得Tumblr的扩展性极具挑战性。

分享到:

网友评论

推荐服务器

热门服务器