`
fastwei
  • 浏览: 23936 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

QQ IM架构学习总结

阅读更多
今天学习了腾迅的ppt分享《1.4亿在线背后的故事》,tecent技术果然是很NB的,对ppt进行了精简总结,以备不时之需。



10万-百万的演变
在线状态的获取
1.定期拉取
2.实时通知

实时通知的3种方式,各有什么优缺点?
直接发包:最简单,但是不能应对某些NAT,也不能应对TCP接入。
伪装IP发包:编程难度大,可以应对NAT,但是不能应对TCP接入,有时还会被IDC自己的网络设备拦住。
通过真正的接入服务器发包:可以应对所有情况,但是成本高。

所以实际演变的顺序就是上面的顺序

QQ后台如何实现高性能
 绝不使用企业级解决方案
 逻辑层多进程
 万有一失的无锁设计
 用户态IPC
 MySQL分库分表
 好友表自写文件存储

绝不使用企业级解决方案:Google牛人的话。
万有一失的无锁设计:通过业务流程的巧妙设计来避免使用锁。举例:设置隐身可见(状态进程)与加好友(好友进程)的冲突没关系;但是LocalOnlineRecord中对好友表位置指针的修改只有登录进程能做。
用户态IPC:使用共享内存设计出用户态的FIFO

QQ后台如何实现7X24小时连续服务
 大系统小做
 平滑重构
 在高速行驶的列车上更换发动机
 核心数据放入共享内存
 接入层与逻辑层分离
 命令分发动态配置化

百万-千万的演变
发生现象:
 手机从不敢离身
 发布新代码提心吊胆
 时不时要扩容,又烦又怕
 时不时要紧急恢复服务
 时不时被用户骂、被老板K
 到底怎么了?
原因:
1.后台机器越来越多,单机死机/故障经常出现,IDC故障也不少,影响服务,也影响人员生活
a) 传统行业设备少单价高,故障很少出现
b) 互联网行业设备多单价低,故障是常态
c) 只在一个IDC内是没前途的

容灾改造的思路
 存储集群:半自动切换模式
 主/从服务器
 从服务器死机,业务不受影响
 主服务器死机,多数命令不受影响,修改资料命令受影响
 业务集群、接入集群、同步集群:自动切换模式
 迅速应对死机等情况,基本不影响业务
 分布在两套IDC
 可以应对IDC整体故障


2.每周有新代码发布,BUG不断出现,严重影响服务
 大部分子系统每周发布一个版本的新代码
 解决方法
 代码review
 灰度发布(每天只发布部分特性)

3. 监控机制原始、报警设置不全,出事了都不知道
 CPU 100%的故事
 解决方法
 完善监控和报警
4. 运维操作通过vim或者mysql进行,非常容易失误
 Grandy的故事

 解决方法
 运维操作Web化(半自动化)、自动化



强调两套、有容灾指挥中心,且在两个IDC


千万级在线的关键技术
 对外提供高可用性的服务
 对内提供高可运维性的系统
 灰度发布
 运营监控
 容灾
 运维自动化/半自动化

亿级在线的关键技术
存偖架构



提供高灵活性的业务支持
 传统IT行业可以半年到两年出一个新版本
 互联网行业要求每个月出一个新版本
同时保持高性能、高可用性、高可运维性

QQ IM后台技术演化的启示
   1.0十万级、2.0百万级
 高性能;7乘24小时连续服务
   3.0千万级
 高可用性;高可运维性
   4.0亿级
 高性能;高可用性;高可运维性;高灵活性


 只实现功能,不难
 高性能/低成本
 高可用性
 高可运维性
 高灵活性
 很难!
在线量每提升一个量级,技术难度也提升一个量级





从下到上一次是:价值观、意识、方法

  • 大小: 35.2 KB
  • 大小: 59 KB
  • 大小: 35.7 KB
  • 大小: 61 KB
  • 大小: 44.2 KB
分享到:
评论
1 楼 cfyme 2012-06-04  
学习学习架构方面的知识

相关推荐

    1.4亿在线背后的故事-——-腾讯-QQ-IM后台架构的演化与启示.ppt

    1.4亿在线背后的故事-——-腾讯-QQ-IM后台架构的演化与启示.ppt

    1.4亿在线背后的故事-腾讯QQ IM后台架构的演化与启示

    1.4亿在线背后的故事_——_腾讯_QQ_IM后台架构的演化与启示

    仿QQIM框架网络版源码

    仿QQIM框架网络版源码 一个使用C#编写的高仿QQ,具备通讯功能的聊天软件 实现了网络通讯,聊天功能等,请下载查看!功能很强大 使用多层架构,扩展性也很强 数据库文件在DB下,附加即可(MS Sql2008) 开发工具:...

    1.4亿在线背后的故事-——-腾讯-QQ-IM后台架构的演化与启示.pdf

    1.4亿在线背后的故事-——-腾讯-QQ-IM后台架构的演化与启示.pdf

    腾讯IM架构

    第一代架构难以支持百万级在线,十万级到百万级在线的关键技术

    腾讯大讲堂 - 2012精品讲座合集(pdf)

    1-1.4亿在线背后的故事——QQ IM后台架构的演化与启示 2-微内核插件式懒加载客户端架构——QQ宠物客户端重构 3-搜索引擎的技术和功效演变史 4-Q+开放平台技术沙龙-Web应用的开发与调试 5-微信之道——至简 6-QQ基础...

    即时通讯(普林斯IM)

    使用普林斯ORM架构,支持多语言,QQ:82884055

    解析SNS社区产品架构模型

    原本经济危机来了,FACEBOOK估值从150...而早期的网易社区,腾讯IM平台,早期博客形态的QQ空间,包括现在一些手机社区,都和SNS有些偏差。具体地讨论以下问题:1)SNS社区的三层产品架构:Profile、Relation、Content&

    基于Android的仿QQ聊天软件(源码+文档).rar

    即时通信(Instant Messaging,IM)软件产生以来,这种通过网络与其它在线用户进行交流的方式,受到了个人公司以及行业的青睐。本文采用软件工程的管理和设计方法,对项目的需求进行了分析,完成了功能用例建模,使用...

    QQ for linux(ubuntu) 下载安装教程

    QQ for linux最新版安装(ubuntu) 2019.10.24程序猿节腾讯在...https://im.qq.com/linuxqq/download.html 博主是ubuntu16.04系统,ubuntu点击x64 .deb 下载好以后打开.deb所在文件夹(默认在download文件夹下) 在该文

    局域网即时通讯

    基于C/S架构,经典山寨QQ范例,数据库采用sqlserver2005,学习者可以借鉴一下

    分布式可伸缩IM服务器FishChat.zip

    FishChat(鱼传——鱼传尺素),是一款纯 golang 编写优秀的即时通讯软件(IM), 它集合了市面上已有产品的优点, 并具备 智能硬件网关管理(学习QQ物联思想, 构思中)。FishChat Android 客户端见 ...

    秒杀业务架构优化之路

    IM系统,例如QQ或者微博,每个人都读自己的数据(好友列表、群列表、个人信息)。微博系统,每个人读你关注的人的数据,一个人读多个人的数据。秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人...

    I-favourite爱飞多用户博客系统 v2011 RTM

    I-Favourite是多用户多语言多种数据支持博客系统,可以通过wap和IM紧密接合,可通过QQ,MSN机器人等发布博客。是一个很强大的博客系统。i-favourite v4.0 RTM[2010-12-26] 1.增加好友圈.2.增加OpenSocial应用模块3....

    爱飞多用户博客 v4.0.rar

    I-Favourite是多用户多语言多种数据支持博客系统,可以通过wap和IM紧密接合,可通过QQ,MSN机器人等发布博客。是一个很强大的博客系统。 i-favourite v4.0 RTM[2010-12-26] 1.增加好友圈. 2.增加OpenSocial应用...

    基于QT(C++)实现(界面)即时通讯软件【100010661】

    项目使用 c/s 架构,由服务器(server)和客户端(client)组成。 服务端进行数据库操作存储用户信息、聊天记录和传输文件副本等数据。同时进行客服注册、登入请求的处理与进行聊天信息和文件的转发工作。 客户端...

    Pidgin插件框架分析文档

    偶然的关系接触到Pidgin这款软件,被它对多协议的支持吸引,从网上Down的源码后,经过分析,掌握了它的协议框架,经过一段时间的分析和开发后将它的协议框架应用到我自己写的一款通讯软件"易聊"上,它完全支持了Pidgin...

    2022最新鸽哒IM即时通讯系统源码 带安卓、苹果、PC端(全开源)+部署教程

    后台是酷信的,包括linux、Windows、docker三种部署方式,后台开发语言主要是java,部署较麻烦,但整体架构满足高并发场景,支持集群,有完整的部署教程。后台推送包含市面上主流的推送方式,并且有独立的公告推送,...

Global site tag (gtag.js) - Google Analytics