微博技术解密(上) | 微博信息流是如何实现的?
胡忠想
该思维导图由 AI 生成,仅供参考
专栏结束后,有不少同学留言希望我能讲一些微博基础架构的知识。所以接下来的微博技术解密系列,我将分享微博在信息流架构、存储中间件等方面的经验,希望能给你带来启发和帮助。
今天我们先来看微博信息流架构,也就是微博的 Feed 是如何构建的。首先什么是 Feed 呢?根据我的理解,Feed 是互联网 2.0 时代的产物,它与互联网 1.0 时代的产物——门户网站最大的不同之处就是 Feed 不需要用户在各个板块之间来回跳转获取信息,而是把不同的信息都聚合在一起,可以供用户源源不断地访问。这里就涉及了两个问题,一个是信息如何保存,另一个是信息如何聚合。这也是今天我要分享的主要内容,我会从存储架构的角度阐述微博 Feed 是如何存储的,然后会从业务架构的角度阐述微博 Feed 是如何聚合的。
微博 Feed 存储架构
我们知道,微博 Feed 是由关注人的微博聚合在一起组成的,所以要存储每个人发的微博,那么在设计存储架构时主要需要注意三个问题:
每秒数据写入量,也就是每秒发博量是多大。
每秒数据访问量,也就是每秒微博请求量是多大。
是否有冷热数据之分,也就是微博的请求是否有时间特点。
结合微博的业务场景,我来回答上面提出的三个问题。首先是每秒发博量,这里要考虑到极端情况,比如元旦零点,瞬间会有大量用户发博,达到数万 QPS。再来看下每秒微博请求量,同样要考虑到在热点事件时,比如“春晚”时会有大量用户访问微博,请求量也会达到数万 QPS;并且每个用户关注的不止是一个人,假设关注数的平均值是 200,那么微博数据的请求量就是几百万 QPS。除此之外,微博的访问也是有时间特点的,用户一般访问新发微博的概率要远远大于一周前发的微博,所以说微博数据也是有冷热之分的。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
微博信息流架构解密:存储与聚合 本文深入探讨了微博信息流的存储架构设计及业务架构选型。首先介绍了Feed的存储和聚合作为构建微博信息流的基础,强调了存储架构设计在微博业务场景中的重要性。针对微博业务特点,文章提出了在MySQL存储前加入一层缓存的解决方案,以应对数据请求量、降低服务器成本,提高读写能力。此外,还对推模式、拉模式和推拉结合三种信息流聚合架构进行了详细解析,并分析了它们各自的优缺点。最终,文章总结了微博Feed采用了拉模式的业务架构,并介绍了针对关注人数上千的用户进行拉取方式优化的实践经验。 总的来说,本文通过深入浅出的方式,从业务场景出发,结合不同存储方案的特点,提出了解决方案,对于理解微博信息流的技术实现以及在大数据场景下的存储架构设计具有重要参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》,新⼈⾸单¥59
《从 0 开始学微服务》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(14)
- 最新
- 精选
- 招耳存储在redis中,然后对微博信息进行聚合操作比较简单吧2019-02-1526
- BestWill微博Feed是拉模式,如何方便地做分页查询呢?2021-10-124
- 不记年采用图数据 Dgraph +redis 的方案2020-02-124
- lvvp1. memecached 维护问题 2. memecached 故障你们是如何解决的?2019-01-303
- 极客雷关注人分组拉取具体是怎么分的,存储的时候也是分组存储的吗?具体怎么存的?这个最关键的地方写的有点语焉不详2021-03-212
- 0xTang推拉结合真是很多架构都会使用到2020-03-2912
- 0xTang写入是tps,查询是qps2019-02-1622
- 旅途老师你好 推模式 一条微博为什么要存储多份 存一个外键行么2019-12-0711
- 北极的大企鹅比较想问的是学完框架后,是先学设计模式还是先学JVM原理,并发与线程安全,然后中间件和架构设计,数据库设计,Linux学习,跨语言学习顺序,这些都是按照什么样的顺序学习的,还有源码阅读顺序2019-04-111
- 码小呆memecached 故障如何处理,为何不使用redis来做呢,是历史原因吗,后续又做升级吗2023-02-06归属地:广东
收起评论