默认
打赏 发表评论 19
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]
阅读(59225)?|?评论(19 收藏13 淘帖2

前言


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

内容简介


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


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


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

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

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


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

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

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

3亿级在线时代的到来


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

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

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

PPT主讲者介绍


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

PPT截图预览


腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_1.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_2.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_3.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_4.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_5.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_6.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_7.jpg
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT [附件下载]_8.jpg

PPT附件下载


腾讯IM架构:1亿在线背后的技术挑战.pdf (1.55 MB , 下载次数: 2667 , 售价: 2 金币)

推荐文章


点击进入:《17年的实践:腾讯海量产品的技术方法论

附录1:全站精品资源下载


[1] 精品源码下载:
轻量级亚博电竞网框架MobileIMSDK的iOS源码(开源版)[附件下载]
开源IM工程“蘑菇街TeamTalk”2015年5月前未删减版完整代码 [附件下载]
微信本地数据库破解版(含iOS、Android),仅供学习研究 [附件下载]
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战 [附件下载]
NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战 [附件下载]
NIO框架入门(二):服务端基于MINA2的UDP双向通信Demo演示 [附件下载]
NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示 [附件下载]
用于IM中图片压缩的Android工具类源码,效果可媲美微信 [附件下载]
高仿Android版手机QQ可拖拽未读数小气泡源码 [附件下载]
一个WebSocket实时聊天室Demo:基于node.js+socket.io [附件下载]
Android聊天界面源码:实现了聊天气泡、表情图标(可翻页) [附件下载]
高仿Android版手机QQ首页侧滑菜单源码 [附件下载]
开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石 [源码下载]
分享java AMR音频文件合并源码,全网最全
微信团队原创Android资源混淆工具:AndResGuard [有源码]
一个基于MQTT通信协议的完整Android推送Demo [附件下载]
Android版高仿微信聊天界面源码 [附件下载]

[2] 精品文档和工具下载:
计算机网络通讯协议关系图(中文珍藏版)[附件下载]
史上最全亚博电竞网软件简史(精编大图版)[附件下载]
基于RTMP协议的流媒体技术的原理与应用(技术论文)[附件下载]
独家发布《TCP/IP详解 卷1:协议》CHM版 [附件下载]
良心分享:WebRTC 零基础开发者教程(中文)[附件下载]
MQTT协议手册(中文翻译版)[附件下载]
经典书籍《UNIX网络编程》最全下载(卷1+卷2、中文版+英文版)[附件下载]
音视频开发理论入门书籍之《视频技术手册(第5版)》[附件下载]
国际电联H.264视频编码标准官方技术手册(中文版)[附件下载]
Apache MINA2.0 开发指南(中文版)[附件下载]
网络通讯数据抓包和分析工具 Wireshark 使用教程(中文) [附件下载]
最新收集NAT穿越(p2p打洞)免费STUN服务器列表 [附件下载]
高性能网络编程经典:《The C10K problem(英文)》[附件下载]
亚博电竞网系统的原理、技术和应用(技术论文)[附件下载]
技术论文:微信对网络影响的技术试验及分析[附件下载]
华为内部3G网络资料: WCDMA系统原理培训手册[附件下载]
网络测试:Android版多路ping命令工具EnterprisePing[附件下载]
Android反编译利器APKDB:没有美工的日子里继续坚强的撸
一款用于P2P开发的NAT类型检测工具 [附件下载]
两款增强型Ping工具:持续统计、图形化展式网络状况 [附件下载]

[3] 精选视频、演讲PPT下载:
QQ空间移动端10亿级视频播放技术优化揭秘(视频+PPT)[附件下载]
RTC实时互联网2017年度大会精选演讲PPT [附件下载]
微信分享开源IM网络层组件库Mars的技术实现(视频+PPT)[附件下载]
微服务理念在微信海量用户后台架构中的实践(视频+PPT)[附件下载]
移动端IM开发和构建中的技术难点实践分享(视频+PPT)[附件下载]
网易云信的高品质亚博电竞网技术实践之路(视频+PPT)[附件下载]
腾讯音视频实验室:直面音视频质量评估之痛(视频+PPT)[附件下载]
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT[附件下载]
微信朋友圈海量技术之道PPT[附件下载]
手机淘宝消息推送系统的架构与实践(音频+PPT)[附件下载]
如何进行实时音视频的质量评估与监控(视频+PPT)[附件下载]
Go语言构建高并发消息推送系统实践PPT(来自360公司)[附件下载]
网易IM云千万级并发消息处理能力的架构设计与实践PPT [附件下载]
手机QQ的海量用户移动化实践分享(视频+PPT)[附件下载]
钉钉——基于IM技术的新一代企业OA平台的技术挑战(视频+PPT)[附件下载]
微信技术总监谈架构:微信之道——大道至简(PPT讲稿)[附件下载]
Netty的架构剖析及应用案例介绍(视频+PPT)[附件下载]
声网架构师谈实时音视频云的实现难点(视频采访)
滴滴打车架构演变及应用实践(PPT讲稿)[附件下载]
微信海量用户背后的后台系统存储架构(视频+PPT)[附件下载]
在线音视频直播室服务端架构最佳实践(视频+PPT)[附件下载]
从0到1:万人在线的实时音视频直播技术实践分享(视频+PPT)[附件下载]
微信移动端应对弱网络情况的探索和实践PPT[附件下载]
Android版微信从300KB到30MB的技术演进(PPT讲稿)[附件下载]

附录2:全站亚博电竞网技术资料分类


[1] 网络编程基础资料:
TCP/IP详解 - 第11章·UDP:用户数据报协议
TCP/IP详解 - 第17章·TCP:传输控制协议
TCP/IP详解 - 第18章·TCP连接的建立与终止
TCP/IP详解 - 第21章·TCP的超时与重传
理论经典:TCP协议的3次握手与4次挥手过程详解
理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程
计算机网络通讯协议关系图(中文珍藏版)
NAT详解:基本原理、穿越技术(P2P打洞)、端口老化等
UDP中一个包的大小最大能多大?
Java新一代网络编程模型AIO原理及Linux系统AIO介绍
NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
>> 更多同类文章 ……

[2] 有关IM/推送的通信格式、协议的选择:
为什么QQ用的是UDP协议而不是TCP协议?
移动端亚博电竞网协议选择:UDP还是TCP?
如何选择亚博电竞网应用的数据传输格式
强列建议将Protobuf作为你的亚博电竞网应用数据传输格式
移动端IM开发需要面对的技术问题(含通信协议选择)
简述移动端IM开发的那些坑:架构设计、通信协议和客户端
理论联系实际:一套典型的IM通信协议设计详解
58到家实时消息系统的协议设计等技术实践分享
>> 更多同类文章 ……

[3] 有关IM/推送的心跳保活处理:
Android进程保活详解:一篇文章解决你的所有疑问
Android端消息推送总结:实现原理、心跳保活、遇到的问题等
为何基于TCP协议的移动端IM仍然需要心跳保活机制?
微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)
微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)
移动端IM实践:实现Android版微信的智能心跳机制
移动端IM实践:WhatsApp、Line、微信的心跳策略分析
>> 更多同类文章 ……

[4] 有关WEB端亚博电竞网开发:
新手入门贴:史上最全Web端亚博电竞网技术原理详解
Web端亚博电竞网技术盘点:短轮询、Comet、Websocket、SSE
SSE技术详解:一种全新的HTML5服务器推送事件技术
Comet技术详解:基于HTTP长连接的Web端实时通信技术
WebSocket详解(一):初步认识WebSocket技术
socket.io实现消息推送的一点实践及思路
>> 更多同类文章 ……

[5] 有关IM架构设计:
浅谈IM系统的架构设计
简述移动端IM开发的那些坑:架构设计、通信协议和客户端
一套原创分布式亚博电竞网(IM)系统理论架构方案
从零到卓越:京东客服亚博电竞网系统的技术架构演进历程
蘑菇街亚博电竞网/IM服务器开发之架构选择
腾讯QQ1.4亿在线用户的技术挑战和架构演进之路PPT
微信技术总监谈架构:微信之道——大道至简(演讲全文)
如何解读《微信技术总监谈架构:微信之道——大道至简》
快速裂变:见证微信强大后台架构从0到1的演进历程(一)
17年的实践:腾讯海量产品的技术方法论
>> 更多同类文章 ……

[6] 有关IM安全的文章:
亚博电竞网安全篇(一):正确地理解和使用Android端加密算法
亚博电竞网安全篇(二):探讨组合加密算法在IM中的应用
亚博电竞网安全篇(三):常用加解密算法与通讯安全讲解
亚博电竞网安全篇(四):实例分析Android中密钥硬编码的风险
传输层安全协议SSL/TLS的Java平台实现简介和Demo演示
理论联系实际:一套典型的IM通信协议设计详解(含安全层设计)
微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解
来自阿里OpenIM:打造安全可靠亚博电竞网服务的技术实践分享
>> 更多同类文章 ……

[7] 有关实时音视频开发:
亚博电竞网音视频开发(一):视频编解码之理论概述
亚博电竞网音视频开发(二):视频编解码之数字视频介绍
亚博电竞网音视频开发(三):视频编解码之编码基础
亚博电竞网音视频开发(四):视频编解码之预测技术介绍
亚博电竞网音视频开发(五):认识主流视频编码技术H.264
亚博电竞网音视频开发(六):如何开始音频编解码技术的学习
亚博电竞网音视频开发(七):音频基础及编码原理入门
亚博电竞网音视频开发(八):常见的实时语音通讯编码标准
亚博电竞网音视频开发(九):实时语音通讯的回音及回音消除概述
亚博电竞网音视频开发(十):实时语音通讯的回音消除技术详解
亚博电竞网音视频开发(十一):实时语音通讯丢包补偿技术详解
亚博电竞网音视频开发(十二):多人实时音视频聊天架构探讨
亚博电竞网音视频开发(十三):实时视频编码H.264的特点与优势
亚博电竞网音视频开发(十四):实时音视频数据传输协议介绍
亚博电竞网音视频开发(十五):聊聊P2P与实时音视频的应用情况
亚博电竞网音视频开发(十六):移动端实时音视频开发的几个建议
亚博电竞网音视频开发(十七):视频编码H.264、V8的前世今生
简述开源实时音视频技术WebRTC的优缺点
良心分享:WebRTC 零基础开发者教程(中文)
>> 更多同类文章 ……

[8] IM开发综合文章:
移动端IM开发需要面对的技术问题
开发IM是自己设计协议用字节流好还是字符流好?
请问有人知道语音留言聊天的主流实现方式吗?
IM系统中如何保证消息的可靠投递(即QoS机制)
谈谈移动端 IM 开发中登录请求的优化
完全自已开发的IM该如何设计“失败重试”机制?
微信对网络影响的技术试验及分析(论文全文)
亚博电竞网系统的原理、技术和应用(技术论文)
开源IM工程“蘑菇街TeamTalk”的现状:一场有始无终的开源秀
>> 更多同类文章 ……

[9] 开源移动端IM技术框架资料:
开源移动端IM技术框架MobileIMSDK:快速入门
开源移动端IM技术框架MobileIMSDK:常见问题解答
开源移动端IM技术框架MobileIMSDK:压力测试报告
开源移动端IM技术框架MobileIMSDK:Android版Demo使用帮助
开源移动端IM技术框架MobileIMSDK:Java版Demo使用帮助
开源移动端IM技术框架MobileIMSDK:iOS版Demo使用帮助
开源移动端IM技术框架MobileIMSDK:Android客户端开发指南
开源移动端IM技术框架MobileIMSDK:Java客户端开发指南
开源移动端IM技术框架MobileIMSDK:iOS客户端开发指南
开源移动端IM技术框架MobileIMSDK:Server端开发指南
>> 更多同类文章 ……

[10] 有关推送技术的文章:
iOS的推送服务APNs详解:设计思路、技术原理及缺陷等
Android端消息推送总结:实现原理、心跳保活、遇到的问题等
扫盲贴:认识MQTT通信协议
一个基于MQTT通信协议的完整Android推送Demo
求教android消息推送:GCM、XMPP、MQTT三种方案的优劣
移动端实时消息推送技术浅析
扫盲贴:浅谈iOS和Android后台实时消息推送的原理和区别
绝对干货:基于Netty实现海量接入的推送服务技术要点
移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)
为何微信、QQ这样的IM工具不使用GCM服务推送消息?
>> 更多同类文章 ……

[11] 更多亚博电竞网技术好文分类:
http://www.52im.net/forum.php?mod=collection&op=all

亚博电竞网网 - 亚博电竞网开发者社区! 来源: - 亚博电竞网开发者社区!

上一篇:Android反编译利器APKDB:没有美工的日子里继续坚强的撸?下一篇:微信朋友圈海量技术之道PPT [附件下载]

本帖已收录至以下技术专辑

推荐方案
评论 19
虽然对企鹅一点好感都没有,但是不得不承认qq架构的强悍。ppt里的内容还是有干货的,很好的分享!
演讲的视频我找到地址了,绝对干货,感兴趣的看看:http://v.qq.com/cover/l/lsallcrrs0yjsgk.html
签名: 国庆长假还没有缓过来,请让我静一静,产品狗死远点...
引用:fengge8ylfx 发表于 2016-03-22 01:47
虽然对企鹅一点好感都没有,但是不得不承认qq架构的强悍。ppt里的内容还是有干货的,很好的分享!

大家都对某鹅好奇,这个演讲值得推荐。
签名: 《适合新手:从零开发一个IM服务端(基于Netty,有完整源码)》:http://www.52im.net/thread-2768-1-1.html
第一次听腾讯技术分享
提示: 该帖被管理员或版主屏蔽
签名: 来过
mark
签名: 样样精通
如果有视频就好了
签名: 该会员没有填写今日想说内容.
引用:IM_emily2017 发表于 2017-06-28 11:56
如果有视频就好了

这个演讲没有找到视频,抱歉
签名: 《适合新手:从零开发一个IM服务端(基于Netty,有完整源码)》:http://www.52im.net/thread-2768-1-1.html
学习学习
签名: 该会员没有填写今日想说内容.
学习学习
签名:
学习,必须mark
真的希望可以买金币,哈哈
引用:cenji 发表于 2017-12-26 15:12
真的希望可以买金币,哈哈

暂时买不了
签名: 《适合新手:从零开发一个IM服务端(基于Netty,有完整源码)》:http://www.52im.net/thread-2768-1-1.html
内容不错,学习。
签名: 心情好
必须学习一下,谢谢分享
厉害
回复里提到的那个视频不见了。有么有哪位高人指点?
签名: IM新兵开始学习
引用:JamesWu 发表于 2018-11-06 16:29
回复里提到的那个视频不见了。有么有哪位高人指点?

是的,这个视频链接失效了,很多人分享技术只是一时的,很快就没了
签名: 《适合新手:从零开发一个IM服务端(基于Netty,有完整源码)》:http://www.52im.net/thread-2768-1-1.html
美呆呆
签名: 刚来,知识都是我的菜!
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部