手机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. 多个线程作用于同一个runnable对象

    多个线程作用于同一个runnable对象 学习了:https://www.cnblogs.com/ligang305/archive/2012/08/10/2632126.html http://as ...

  2. pl/sql developer 自带汉化选项

    pl/sql developer 自带汉化选项 版本:11.0.2 工具 -> 选项 -> 用户界面 ->外观, 第一项就是选择语言: 选择Chinese.lang,如果有的话:

  3. 去哪网实习总结:JavaWeb配置404页面(JavaWeb)

    本来是以做数据挖掘的目的进去哪网的,结构却成了系统开发. .. 只是还是比較认真的做了三个月,老师非常认同我的工作态度和成果... 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题.分享 ...

  4. Tomcat容器 web.xml具体解释

    <init-param> <param-name>debug</param-name> <param-value>0</param-value&g ...

  5. 再探Linux动态链接 -- 关于动态库的基础知识(Dynamic Linking on Linux Revisited)

      在近一段时间里,由于多次参与相关专业软件Linux运行环境建设,深感有必要将这些知识理一理,供往后参考. 编译时和运行时 纵观程序编译整个过程,细分可分为编译(Compiling,指的是语言到平台 ...

  6. 在IIS6,7中部署ASP.NET网站

    查看web.config文件 ASP.NET网站与一般的桌面程序不同,不是拷贝过来就能运行的(数据库连接除外). 要想运行它,通常需要一些配置过程.但是,我们到底需要配置什么呢?答案是:查看web.c ...

  7. APP_ABI

    在Application.mk文件中有个预定义命令参数APP_ABI,是指明编译与调试的CPU架构. 目前Android系统支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x8 ...

  8. Gridview表格控件

    Gridview表格控件 效果图: 分析: 使用和ListvVew很像,都是经过适配器将数据绑定到控件上 具体步骤如下: 1.创建GridView控件,并指定列数 android:numColumns ...

  9. 关于hexo博客自定义域名后gitment评论系统登陆出现redirect error返回主页的解决办法

    title: 关于hexo博客自定义域名后gitment评论系统登陆出现redirect error返回主页的解决办法 toc: false date: 2018-04-16 22:57:50 cat ...

  10. POJ 2752 KMP中next数组的应用

    题意: 让你从小到大输出给的字符串中既是前缀又是后缀的子串的长度. 思路: 先要了解这个东西: KMP中next数组表示的含义:记录着字符串匹配过程中失配情况下可以向前多跳几个字符,它描述的也是子串的 ...