QQ的架构问题.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
QQ的架构问题

Q的架构问题   -----------sodme 大宝   hi, all:   我把第一个问题选为:QQ的架构。呵呵,题目是不是有点大?QQ现在的最高在线用户数是1900万,我们来讨论一下要作一个这样的架构如何来作更好,大家积极发言,这也是我这个周末为自己选择的思考题,呵呵。大家积极畅所欲言。   我们讨论的问题可以包括但不限于这些内容:   1.登录时的负载如何解决的   2.服务器主要作哪些事,负载如何解决   3.数据库负载如何解决   ...   ------------- Arbow   我来这看热闹的,也没做过啥大系统,随便说两句啊:)    按照我们的设想,对于3,是不会使用数据库来撑大访问量的,特别是一些不需要实时更新的数据,会通过一个的Server对数据进行汇总,然后在数据库比 较空闲的时间段进行批量更新。而客户端查询相关信息,也不会直接查询数据库,而是直接连接Server来获取。对于这些Server群的负载,就有很多方 法了,没做过,就不纸上谈兵啦。   另外说说Web负载,根据HTTP协议返回的信息,QQ是使用Apache来实现Web负载的,Apache虽然定制非常方便,扩展性强,但是性能并不是最优的。Google就实现了它自己的WebServer   GWS   (Gmail中是GFE??),跟它的GFS紧密结合起来,性能做到最好。   好了,搬个小板凳看老大们发言啊@_@   -------------tingya   QQ的后台用的是MySQl数据库哦,呵呵,是不是不可思议啊?不过整个MySqL都是面目全非了,被QQ的人修改的不成人形。性能非常的高,尤其数据的读取和存储。   QQ的服务器技术号称世界领先,呵呵,   ------------Donald   只知道QQ的广告服务器是分省的,广告下发要一到两天,其他的就不知道了   登陆和登出确实是个比较麻烦的事情,要通知到所有的好友,所以用户数据必须是集中的,登陆有时候通知会失效,不知道是不是UDP的协议,听大家说说   ---------- Roger Chen   以前对MSN Messenger协议有所研究,MSN Messenger服务器可以分为三类:Dispatch   Server(DS)、Notification Server(NS)、Switchboard Server(SB)。   DS是Messenger登陆时首先连接的服务器。然后DS指定一个NS的IP返回给客户端,   然后关闭连接。   Messenger接着连接到得到的NS IP地址,所有的操作信息,比如添加好友、删除好   友,更名等等都是通过NS的这个连接完成。只要Messenger在线,该连接会一直保   持。   如果要开始对话,发起人发送指定指令到NS,NS返回一个指定的SB IP,接受者会   在其NS连接上也收到该SB IP的通知。然后双方均连接到该SB上进行对话,对话完   成后关闭连接。   以下是我对这三种服务器的看法:   DS采用的负载均衡方式应该比较简单,通过DNS解析来做负载均衡。并且由于在DS   上的连接都是短连接,保持时间非常短,所以应该DS服务器的数量应该不会很多。   由于DS必须要返回一个可用的NS IP,那么内部应该还有其他种类的服务器来保存   当前所有可用的NS服务器,以及这些NS服务器上的负载。通过DS这一层来为接下来   的NS做负载均衡。   NS连接均为长连接,所以在这一层上的负载由DS来调节。如果NS负载太大,新客户   连接上DS时会返回其他相对空闲的NS服务器。当然NS服务器之间也有相互通讯的机   制也是少不了的,比如上下线通知、对话发起等等。   SB连接的时间介于NS和DS之间,其负载由NS来作控制。对话完成后和SB之间的连接   就关闭了。不过由于所有的对话都在SB上进行,MS的服务器资源再强也会吃紧,所   以现在新版的MSN Messenger都加入了P2P Message类型,在发起对话的时候会判断   如果双方都支持P2P Message,则会直接点对点连接连接,绕过SB这一层。   -----------------anders lin   我认为qq登录也是差不多这样。   其登录采用udp(默认登录方式), 登录服务器(相当于NS)不需要保持连接的,负载很好做。   至于对话,qq和msn一样,都是P2P消息(可以打开msn的连接日志看到),不过msn在8.0之前,不支持离线消息。   所以,我很关键的技术问题,应该在于数据库上,一些表必须违反范式,做特别的冗余。   ---------

文档评论(0)

youshen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档