新浪微博技术架构.docx
《新浪微博技术架构.docx》由会员分享,可在线阅读,更多相关《新浪微博技术架构.docx(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新浪微博技术架构首先给大家介绍一下微博架构发展的历程。新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是非常快的,我们能够非常快的实现我们的模块。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推的消息形式,假设讲我们一个明星用户他有10万个粉丝,那就是讲用户发表一条微博的时候,我们把这个微博消息攒成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第一颁的技术细节,典型的LAMP架构,是使用Myisam搜索引擎,它的优点就是速度非常快。另外一个是MPSS,就是多个端口能够布置在服务器上。为何使
2、用MPSS?假设讲我们做一个互联网应用,这个应用里面有三个单元,我们能够由三种部署方式。我们能够把三个单元部署在三台服务器上,另外一种部署形式就是这三个单元部署在每个服务器上都有。这个解决了两个问题,一个是负载平衡,由于每一个单元都有多个结点处理,另外一个是能够防止单点故障。假如我们根据形式一来做的话,任何一个结点有故障就会影响我们系统服务,假如形式二的话,任何一个结点发生故障我们的整体都不会遭到影响的。我们微博第一版上线之后,用户非常喜欢这个产品,用户数增长非常迅速。我们技术上碰到几个问题。第一个问题是发表会出现延迟现象,尤其是明星用户他的粉丝多。另外系统处理明星用户发表时候的延迟,可能会影
3、响到其他的用户,由于其他的用户同一时间发表的话,也会遭到这个系统的影响。我们就考虑这个系统怎么改良。首先是推形式,这肯定是延迟的首要原因,我们要把这个问题解决掉。其次我们的用户越来越多,这个数据库表从一百万到一亿,数据规模不一样处理方式是有差异的。我们第一版单库单表的形式,当用户数量增加的时候,它不能知足就需要进行拆分。第二个是锁表的问题,我们考虑的是更改引擎。另外一个是发表过慢,我们考虑的是异步形式。第二版我们进行了模块化,我们首先做了一个层,做了拆分,最右边的发表做了异步形式。第二个服务层,我们把微博基础的单元设计成服务层一个一个模块,最大是对推形式进行了改良。首先看一下投递形式的优化,首
4、先我们要考虑推形式,假如我们做一下改良把用户分成有效和无效的用户。我们一个用户比方讲有一百个粉丝,我发一条微博的时候不需要推给一百个粉丝,由于可能有50个粉丝不会马上来看,这样同步推送给他们,相当于做无用功。我们把用户分成有效和无效之后,我们把他们做一下区分,比方讲当天登陆过的人我们分成有效用户的话,只需要发送给当天登陆过的粉丝,这样压力马上就减轻了,另外投递的延迟也减小了。我们再看数据的拆分,数据拆分有很多方式,很多互联网产品最常用的方法,比方讲如能够根据用户的UID来拆分。但是微博用户的一个特点就是讲大家访问的都是近期的服务器,所以我们考虑微博的数据我们根据时间拆分,比方讲一个月发一张表,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新浪 技术 架构
限制150内