微博技术架构

本文详细介绍了微博从第一版的LAMP架构到第三版的分布式服务化架构的演变过程,包括遇到的问题及解决方案。第一版采用推模式导致延迟,后改用异步模式并进行数据拆分。第二版面临单点故障、访问速度和数据压力挑战,通过模块化、分层和优化推送策略改进。第三版强调服务化,实现低延迟、高可用和可扩展,采用多机房同步方案确保实时性,并重视平台安全性设计。
摘要由CSDN通过智能技术生成
第一版架构
  1. 是LAMP架构,优点是可以很快地实现系统,第一版采用推消息模式,假如明星用户有10万粉丝,当用户发表一条微博的时候,把微博消息存成10万份,使用的是MyISAM搜索引擎,优点就是速度很快。
  2. MPSS,多个端口可以布置在同一个服务器上。
  3. 假如做一个互联网应用,应用里面有三个单元,可以有两种部署方式。第一种部署方式是把三个单元分别部署在三台服务器上,第二种部署方式是在三台服务器的每台服务器上都部署上这三个单元。推荐第二种部署方式。
  4. 上面的第二种部署方式解决了两个问题:第一个问题是负载均衡,第二个问题是避免单点故障。负载均衡体现在:每一个单元都有多个节点处理。避免单点故障体现在:任何一个节点发生故障对于整体都不会影响。
第一版架构遇到的问题
  1. 发表会出现延迟。推模式是出现延迟的首要原因。
  2. 第一版架构是单库单表,当用户数量激增时,需要拆分。
  3. 锁表的问题,更换引擎。
  4. 发表过慢,考虑异步模式。
第二版架构
  1. 考虑模块化。
  2. 首先做分层,最底层叫做基础层。
  3. 然后是服务层,把微博的基础单元设计成服务层的一个一个模块。
  4. 对数据做拆分。数据的拆分有很多方式,比如按照用户的UID来拆分。这里结合微博的特点:微博用户一般都是查看最近的消息,所以这里可以按照时间来拆分,比如一个月放一张表。
  5. 数据拆分的第二点需要考虑将内容和索引分开存放,索引和内容分开存放那么数据就会变成key-value的方式,key-value是最容
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值