手机QQ架构的浅谈
手机QQ的原本的产品定位定位于移动社交,并将娱乐与生活服务相结合,整体的架构模块QQ主要分为登录注册,消息,聊天,联系人,动态,侧边栏,设置等几大模块.其中消息模块和聊天模块是核心模块.好友动态及联系人属于次核心模块,延续了PC端的界面结构.
而qq的后台的IM在转变的过程中,每一个级别的要求的分别都不一样,比如有十几万以及上百万的性能的要求、24小时的连续服务以及时刻不会出现宕机这种致命性的错误。在经过了十年左右的发展之后,虽然来说用户量的增长速度慢慢减慢,但是大部分的忠实的用户还在坚持使用,现在的qq已经到达了上亿级别的使用量,对于性能的要求的更加的严格,在架构的设计上,需要完善代码结构的结构以及层次感。

手机QQ在1.0的时代,由于宣传以及流量使用费用的原因等等,QQ的使用用户的用户量还没有突破到十万级,由此业务的架构不需要多困难的部署,主需要有QQ客户端+接入的服务器+存储的服务器等等组成。只是单纯的完成了QQ登录、添加好友、查看好友的在线状态,并没有发展到像现在这样功能强大。在随后的发展过程中,随着QQ的功能逐渐的健全,用户逐渐的体验到了腾讯爸爸添加的图片视频传输的功能。由此带来的带宽上的压力由长服务器进行解决,还对于存储的轻重进行分类,大大减轻了服务器的压力 。
然后在QQ的2.0时代,腾讯主要是将QQ的服务器由单点服务器换成了集成的服务器,同时来说还退出了一个更加重要的功能,那就是QQ群,大大的提高了QQ的办公的能力。同时来讲,这个功能也是将QQ的用户,一下推高到了200万左右的地步。
在从全QQ1.0到2.0这个版本的更替的过程中,QQ的架构的最主要的经验:绝对会不用企业级解决方案解决问题、逻辑层多进程、万有一失的无锁,用户状态,mysql分库分表,好友表自写存储的功能

第二个考验便是QQ面临的千万级的考验,在2005年的时刻,QQ的使用人群的同时的在线人数突破到了千万级别,这就对与QQ的服务器的要求变的更加严厉。
QQ在应对这次的挑战,主要的特点是将服务器进行全面的集群,在面临后台的qq用户越来越多的情况下。机器的故障同时也是越来越多,QQ加速了容灾的改造,存储的集群逐渐转变成为半自动化,在后台分布有两台的IDC。其二,在QQ的使用过程中,不断的出现新的bug,以及漏洞采用cade revrew以及灰度测试,解决问题。通过完善报警机制完善出监控机制原始等问题。

4.0在QQ时代中是跨时代的发展,在架构上同时完善了在异地多点登录的情况使用,可以进行管理不同的登录终端,完善QQ的安全性。能够支持5到10个亿同时在线进行交流,这都是巨大的发展。
在未来的5.0以及6.0版本,希望QQ能够越做越大,将使用的人群年龄扩大,完善使用的客户群体,更加的便利人们的生活。
文章参考:http://www.360doc.com/content/17/0906/17/6828497_685039187.shtml
手机QQ架构的浅谈的更多相关文章
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
- 手机app开发:浅谈APP登录方式的优劣
手机app开发公司亿合科技要是给你一个机会设计一款APP,你会用什么方式做这个APP的登录模块?根据APP的业务模型的不同会有不同的设计方法.如果是偏内容型的APP,需要优先展示内容给用户,当用户需要 ...
- SOA案例架构分析浅谈
上课中讲到了SOA架构设计,自己在课下决定总结一下对于SOA架构的理解以及应用. 先总结一下SOA的定义,SOA是面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使 ...
- 关于mvc架构的浅谈
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
- JavaEE 三层架构的浅谈
三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低 ...
- .net架构的浅谈
,net的架构有以下几种 1.两层架构:UI + 数据层 2.三层架构:UI + 业务层 + 数据层 3.三层 + 接口层 (把相关的业务层抽象成接口,下层来实现接口,中层是依赖) 4.三层 + 接口 ...
- [nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)
蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体 ...
- 示例浅谈PHP与手机APP开发,即API接口开发
示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞 ...
- iOS应用架构浅谈
(整理至http://www.cocoachina.com/ios/20150414/11557.html) 缘由 从事iOS工作一年多了,主要从事QQ钱包SDK开发和财付通app维护,随着对业务的慢 ...
随机推荐
- 《从零開始学Swift》学习笔记(Day48)——类型检查与转换
原创文章,欢迎转载.转载请注明:关东升的博客 继承会发生在子类和父类之间,是一系列类的继承关系. 比如:Person是类层次结构中的根类.Student是Person的直接子类.Worker是Pers ...
- elasticsearch indices.recovery 流程分析(索引的_open操作也会触发recovery)——主分片recovery主要是从translog里恢复之前未写完的index,副分片recovery主要是从主分片copy segment和translog来进行恢复
摘自:https://www.easyice.cn/archives/231 elasticsearch indices.recovery 流程分析与速度优化 目录 [隐藏] 主分片恢复流程 副本分片 ...
- 移动端的click事件延迟触发的原理是什么?如何解决这个问题?
移动端的click事件延迟触发的原理是什么?如何解决这个问题? 原理 :移动端屏幕双击会缩放页面 300ms延迟 会出现点透现象 在列表页面上创建一个弹出层,弹出层有个关闭的按钮,你点了这个按钮关闭弹 ...
- Scrapy日志等级以及请求传参
日志等级 请求传参 提高scrapy的爬取效率 日志等级 - 日志信息: 使用命令:scrapy crawl 爬虫文件 运行程序时,在终端输出的就是日志信息: - 日志信息的种类: - ERROR ...
- Hadoop MapReduce编程 API入门系列之wordcount版本1(五)
这个很简单哈,编程的版本很多种. 代码版本1 package zhouls.bigdata.myMapReduce.wordcount5; import java.io.IOException; im ...
- Gitlab smtp 设置
地址: https://blog.csdn.net/yongche_shi/article/details/78677163 # 腾讯云限制25发信端口,修改为465,并开启. https://doc ...
- SEO规范(部分)
1:尽量减少AJAX的使用搜索引擎无法检索ajax中的内容,也无法识别javascript代码. 2:拒绝iframe,frame标签iframe,frame会极大的阻碍搜索引擎爬取网站内容. 3:图 ...
- JDK和Cglib实现动态代理实例及优缺点分析
Spring AOP使用的核心技术是动态代理,说到动态代理就不得不和设计模式中的代理模式联系起来,通过代理模式我们可以对目标类进行功能增强,在某个方法的执行前后增加一些操作,例如计算方法执行效率.打印 ...
- 时间&物质&效率
由于我的家庭是地道的农民家庭,在上学的时候,父母很辛苦的供我读初中,高中,大学. 现在我想说的是,用时间来换取效率是我求学时最大的遗憾. 举一个例子吧:每次回家坐火车,火车很费时间,假如我不缺钱,完全 ...
- java加密解密算法位运算
一.实例说明 本实例通过位运算的异或运算符 “ ^ ” 把字符串与一个指定的值进行异或运算,从而改变每个字符串中字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,异或运算 ...