QQ空间技术架构之深刻揭秘

2019-05-16    来源:腾讯大讲堂

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

QQ空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级同时在线的飞跃。在这个过程中,QQ空间团队遇到了哪些技术挑战?其站点前后台架构随着业务规模的变化又进行了怎样的演进与变迁?成长背后有过怎样的心酸和快乐……

4.26日晚间,腾讯大讲堂·深圳首站《QQ空间技术架构之峥嵘岁月》活动在腾讯总部腾讯大厦多功能厅举办,腾讯Web前端研发领域专家、腾讯最早的专职Web开发团队核心成员、Qzone核心架构研发总监徐晓在两小时的演讲中揭开了QQ空间技术架构背后的秘密。

正式分享之前,徐晓介绍了QQ空间目前的海量服务数据规模(图1):

1)拥有5.5亿的活跃用户

2)过万台的设备

3)数千万级别的同时在线

4)数十亿级别的全站PV

5)P级的UGC存储量

6)每天千亿级别的服务请求

图1——QQ空间海量服务数据规模

接下来,徐晓把QQ空间成长和发展的历程分成三个阶段:石器时代、冷兵器时代和现代战争时代,分享了QQ空间从开始甚至难以生存,到逐步发展成国内最大的SNS社区产品背后的酸甜苦辣。

石器时代–从十万在线到百万在线

石器时代是QQ空间1.0到3.0稳健上线的过程。

徐晓说:“QQ空间在石器时代遇到的最大难题就是如何生存?如何让这个襁褓中的产品活下来?如何积累第一批宝贵的用户资源?”, 2005年QQ空间首发,最初是采用传统的发放邀请码的方式征集第一批用户。第一款QQ空间是嵌在独立的客户端软件中,看似是个客户端,其实是一个浏览器内核,里面都是HTML页面,以网站的方式存在。

当初的架构非常简单,采用了Apache搭建Web Server,Mysql保存最终数据。用户通过{uin}.qzone.qq.com(uin就是用户的QQ号码)这样的方式访问自己的空间。最开始上线时,仅邀请了电信用户。但上线之后才发现很多北方网通用户也非常希望来体验。但如果让北方网通用户跨网来访问电信的服务,那将是一个非常糟糕的体验。因为当时的跨网之间的带宽是非常有限的。

为了满足网通用户的需求,QQ空间团队在网通搭建了一套与电信一模一样的服务,电信的用户数据只存在电信的服务器上,网通用户数据只存在网通服务器上。看似异地分布,其实两部分数据是互相独立、不能冗余的。在用户注册开通空间时,就确定了他的数据存在于哪个服务器上。

用户访问空间的逻辑抽象来说是这样的(如图2):用户通过浏览器发起请求访问我们的第一个CGI,这个CGI再串行的获取用户数据,比如:装扮数据,日志数据等。等获取到全部数据之后,这个CGI再将所有的数据拼装成一个完整的HTML页面输出给用户。

图2——Qzone2.0典型载入逻辑

标签: QQ 

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:浅谈iOS和Android的产品交互设计:(三)iPhone和Android的控件对比

下一篇:思齐软件胡权斌:邮件营销先抓外贸B2C