手机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架构的浅谈的更多相关文章

  1. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

  2. 手机app开发:浅谈APP登录方式的优劣

    手机app开发公司亿合科技要是给你一个机会设计一款APP,你会用什么方式做这个APP的登录模块?根据APP的业务模型的不同会有不同的设计方法.如果是偏内容型的APP,需要优先展示内容给用户,当用户需要 ...

  3. SOA案例架构分析浅谈

    上课中讲到了SOA架构设计,自己在课下决定总结一下对于SOA架构的理解以及应用. 先总结一下SOA的定义,SOA是面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使 ...

  4. 关于mvc架构的浅谈

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

  5. JavaEE 三层架构的浅谈

    三层架构 三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了“高内聚,低 ...

  6. .net架构的浅谈

    ,net的架构有以下几种 1.两层架构:UI + 数据层 2.三层架构:UI + 业务层 + 数据层 3.三层 + 接口层 (把相关的业务层抽象成接口,下层来实现接口,中层是依赖) 4.三层 + 接口 ...

  7. [nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)

    蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体 ...

  8. 示例浅谈PHP与手机APP开发,即API接口开发

    示例浅谈PHP与手机APP开发,即API接口开发 API(Application Programming Interface,应用程序接口)架构,已经成为目前互联网产品开发中常见的软件架构模式,并且诞 ...

  9. iOS应用架构浅谈

    (整理至http://www.cocoachina.com/ios/20150414/11557.html) 缘由 从事iOS工作一年多了,主要从事QQ钱包SDK开发和财付通app维护,随着对业务的慢 ...

随机推荐

  1. 基于DPI(深度报文解析)的应用识别2------实际分析

    新浪微博的分析 早上刚刚起床先刷微博,打算就分析一下新浪微博.登陆之后抓取公布微博的数据包.进行分析. 1.抓包的要点: 1.关闭其它网络应用,保证本机网络流量的干净,便于分析. 2.先开启wires ...

  2. java中的移位操作

    java中的移位操作仅仅对; a = a << 2; System.out.println(a); System.out.println(Integer.toBinaryString(a) ...

  3. PL/SQL Developer自己主动补全SQL语句

    快捷输入SQL语句,比如输入s,按下空格,自己主动替换成SELECT;再比如,输入se,按下空格, 自己主动替换成SELECT * FROM,很方便,节省了大量的时间去编写反复的SQL语句. 设置方法 ...

  4. 怎样预置Android 手机 APK

    预制APK有下面4种情况: 1, 怎样将带源代码的 APK 预置进系统? 2, 怎样将无源代码的APK预置进系统? 3, 怎样预置APK使得用户能够卸载,恢复出厂设置时不能恢复? 4, 怎样预置APK ...

  5. Java-杂项:Float 加减精度问题

    ylbtech-Java-杂项:Float 加减精度问题 1.返回顶部 1. java float 加减精度问题在取这个字段的时候转换成BigDecimal就可以了同时,BigDecimal是可以设置 ...

  6. Could not open ServletContext resource [/WEB-INF/Dispatcher-servlet.xml]

    转自:https://blog.csdn.net/mafan121/article/details/44833201 配置spring时出现了如下错误: 默认的DispatcherServlet在初始 ...

  7. 南海区行政审批管理系统接口规范v0.3(规划)

    1. 会话API 1.1. login [登录验证] {"r_code":"500","r_msg":"操作失败",&q ...

  8. [JavaEE] Mybatis与Ibatis比较

    随着开发团队转投Google Code旗下,ibatis3.x正式更名为Mybatis 虽然从正式版发布至今也有近一年时间,官方也非常友好的提供了中文版的使用手册,不过相信很多人还在项目中使用ibat ...

  9. docker(二):CentOS安装docker

    前置条件 1. CentOS 7:要求系统为64位.系统内核版本为 3.10 以上 使用如下命令,查看机器配置 lsb_release -a uname -a 2. 关闭防火墙 systemctl s ...

  10. 在量化金融中15个最流行的Python数据分析库

    Python是当今应用最广泛的编程语言之一,以其效率和代码可读性著称.作为一个科学数据的编程语言,Python介于R和java之间,前者主要集中在数据分析和可视化,而后者主要应用于大型应用.这种灵活性 ...