腾讯1亿用户在线背后的技术挑战

 

由CSDN、《程序员》、腾讯共同举办的TUP第十六期:智慧腾讯 梦想互联——1亿在线背后的技术挑战活动于10月31日在北京航空航天大学学术交流厅举行,与会者达到600人次。同时本次活动邀请到了腾讯通平台部高级技术总监、腾讯T4级技术专家、腾讯软件开发通道分会会长庄泗华先生。

众所周知海量互联网服务能力是世界公认的技术难题。经过十多年的发展,腾讯在海量互联网服务方面已有不少技术积累。庄泗华先生在本次演讲中以QQ IM后台服务为例,重现了QQ在线用户从百万级到亿级的整个过程中遇到的技术挑战,并与与会者分享了众多在海量互联网后台服务研发运营方面不为人知的秘密。

担任本次活动主持人的是CSDN&《程序员》杂志总编刘江。他主要介绍了CSDN举办TUP活动的宗旨。

腾讯1亿用户在线背后的技术挑战_第1张图片

CSDN&《程序员》杂志总编刘江致开场辞

腾讯1亿用户在线背后的技术挑战_第2张图片

腾讯研发管理部TT和TM总监余斐代表腾讯致辞

腾讯1亿用户在线背后的技术挑战_第3张图片

腾讯通平台部高级技术总监庄泗华演讲

庄泗华表示QQ现在面临7亿活跃账户,每日1.4亿用户同时在线。QQ过万台IM服务器和百亿级的关系链对数每天接受千亿级的服务请求考验。在这些苛刻的数字面前腾讯要保证99.99%的可用性。当然团队在QQ在线从10万到1.4亿的整个过程也经历了很多破折,同时从十万级、百万级、千万级最终到亿级在线腾讯也吸取了很多教训。这也说明了腾讯对海量服务的理解是长期积累的结果。

第一代架构难以支持百万级在线

庄泗华在演讲中提到了腾讯的第一代架构。他表示当达到一百万在线时,老架构会有各方面的瓶颈出现。以接入服务器的内存为例,单个在线用户的存储量约为2KB,索引和在线状态50字节。好友表400个好友 * 5字节/好友等于2000字节。大致来说,2G内存只能支持一百万在线用户。与此同时,还有CPU/网卡包量和流量/交换机流量等瓶颈。其他服务器也面临类似情况。单台服务器支撑不下所有在线用户/注册用户。第一代架构已无以为继。

庄泗华认为十万级到百万级在线的关键技术是高性能和实现7乘24小时连续服务。实现高性能的关键因素包括绝不使用企业级解决方案、逻辑层多进程、万有一失的无锁设计、用户态IPC、MySQL分库分表以及好友表自写文件存储。而通过大系统小做、平滑重构、核心数据放入共享内存、接入层与逻辑层分离以及命令分发动态配置化可保证QQ后台实现7乘24小时连续服务。

第二代架构难以支持千万级在线

同样第二代架构也存在一些问题。包括同步流量太大、状态同步服务器遇到单机瓶颈、所有在线用户的在线状态信息量太大、单台接入服务器存不下等问题。并且当在线数进一步增加,单台状态同步服务器不能满足需求,单台状态同步服务器支撑不了所有在线用户,单台接入服务器也支撑不了所有在线用户的在线状态信息。

通过深入分析,腾讯发现后台机器越来越多,单机死机/故障就会经常出现。同时每周新代码的发布也导致BUG不断出现,严重影响服务。监控机制的相对原始导致报警设置不全。最后当运维操作通过vim或者mysql进行时也非常容易失误。

庄泗华表示想要解决这些问题就需要对现有架构进行改造。这包括对外提供高可用性的服务、对内提供高可运维性的系统。同时灰度发布、运营监控、容灾以及运维自动化/半自动化也是解决千万级在线所面临问题的关键技术。

亿级在线时代的到来

腾讯1亿用户在线背后的技术挑战_第4张图片

IM亿级在线存储系统架构

随着亿时代在线到来,腾讯也面临了新的问题。通过对原有系统持续完善已经很难支撑亿级在线。

庄泗华表示亿时代在线的四个关键特性:高性能、高可用性、高可运维性和高灵活性。由于互联网行业要求每个月出一个新版本。所以必须提供高灵活性的业务支持。作为硬件层面来说,高可运维性则需要物理架构详细到机架、并具备故障分析智能化、运维操作组件化和负载自动转移等特性的支持。而要保证系统的高性能,自写存储层是至关重要的因素。庄泗华还表示在线量每提升一个量级,技术难度也会提升一个量级

最后庄泗华认为互联网行业有自己的技术规律,需要做自己的技术积累。而腾讯IM服务的未来战略就是全球化分布、高效率的研发以及监控告警的智能化。

专家与与会者交流环节

腾讯1亿用户在线背后的技术挑战_第5张图片

现场听众向专家提问

腾讯1亿用户在线背后的技术挑战_第6张图片

庄泗华回答现场听众的问题

腾讯1亿用户在线背后的技术挑战_第7张图片

活动现场

[注]CSDN稍后会把本次活动的视频和PPT公布,敬请期待。

讲师介绍

庄泗华 腾讯通平台部高级技术总监、腾讯T4级技术专家、腾讯软件开发通道分会会长。中科院计算技术研究所硕士 2004年毕业加入腾讯,是腾讯培养出的第一位T4专家级毕业生。一直致力于QQ IM后台海量服务系统的研发和运营工作。负责过QQ群聊系统、QQ接入与基础通信服务系统等后台系统的研发和运营,见证了QQ在线从800万到1.4亿的整个过程

你可能感兴趣的:(腾讯1亿用户在线背后的技术挑战)