专栏首页架构师之路微博与im消息实现对比[随想]

微博与im消息实现对比[随想]

这两天在Qcon的群里讨论im讨论的比较多,翻出11年写的一篇blog(略显稚嫩?),原文如下:

=====

在网上看了一篇关于微博feed系统的架构文章(SK:可能是2010年timyang在Qcon上的分享,又好像是一篇关于推拉模式的文章),有所感想,由于自己是做IM系统的,故自然会将两者的方案进行联想和对比。

feed系统 可以理解为一个发布订阅系统,你关注了姚晨的微博,姚晨发布了消息,会feed给你。

IM系统 即时通讯系统,典型系统为QQ。

实现方式 (1)推送 IM消息 就是一个典型的推送系统,服务端会主动将消息推送给客户端; IM消息 实时性比较强,而微博的实时性相对不这么强,别人发的信息,订阅者晚个几分钟,甚至十几分钟收到都无所谓; IM群与微博 有共同点:一个人发布一条群消息,推送给群内的其他成员; IM群与微博 的不同点:群人数有限,而姚晨被500W人关注,消息扩散级别不在一个数量级;

如果使用推送来实现feed系统的话,姚晨发布一条消息,就要推送给500W个人,这个量级的扩散是不能接受的。

(2)拉取 IM系统消息(就是登陆QQ广告那种消息) 与微博 的共同点:系统消息需要推送给所有IM用户; IM系统消息 与微博 的不同点:系统消息频率很低,可能每天几条,可微博发送频率很高;

IM系统消息的实现:不会对所有IM用户进行扩散,而是在用户登陆后,轮询拉取,例如10分钟一次。 系统消息实时性和微博类似,有个十几分钟延时也无所谓。

微博压力和IM系统消息压力不在一个数量级: 不妨设微博同时在线为1000W(指在浏览微博网页的),平均每人在线时长为1小时,每天需要轮询次数为: 1000w * 60分钟 / 10分钟一次 = 6000w次 一天4w秒算,每秒压力2k的QPS

不知道我是不是算少了,感觉应该能搞定。

(3)按时间优化拉取 热门微博与热门群消息,都可以按照时间对消息进行分级来优化,例如: 1小时消息表; 1天消息表; 1周消息表; 1月消息表; 可以针对每个级别的消息,做不用策略的存储或者cache。 最活跃的表,查询次数最多的表肯定是时间上最近的表,cache命中率会很高。

本文分享自微信公众号 - 架构师之路(road5858)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-05-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 跨公网调用的大坑与架构优化方案

    第三方接口挂掉,我们的服务会受影响么? 一、缘起与大坑 很多时候,业务需要跨公网调用一个第三方服务提供的接口,为了避免每个调用方都依赖于第三方服务,往往会抽象一...

    架构师之路
  • 第三方服务挂了,如何保证服务不受影响?

    内部服务可能对上游业务提供了很多服务接口,当有一个接口跨公网第三方调用超时时,可能导致所有接口都不可用,即使大部分接口不依赖于跨公网第三方调用。

    架构师之路
  • 58到家通用实时消息平台架构细节(Qcon2016)

    2016Qcon北京,业务核心架构场,《58到家通用实时消息平台架构细节》。 一、解决什么问题 + 难点 解决什么业务问题 (1)端到云的实时上报需求:58速运...

    架构师之路
  • Docker下HBase学习,三部曲之二:集群HBase搭建

    上一章《Docker下HBase学习,三部曲之一:极速体验》我们快速体验了单机版HBase提供的基础服务,接下来我们实战HBase集群环境的搭建。 集群规划 首...

    程序员欣宸
  • 你真的了解浅比较么?

    在学习react PureComponent的时候,看到有一句话,由于PureComponent的shouldeComponentUpdate里,实际是对pro...

    IMWeb前端团队
  • 你真的了解浅比较么?

    本文作者:IMWeb 黄qiong 原文出处:IMWeb社区 未经同意,禁止转载 背景 在学习react PureComponent的时候,看到有一句...

    IMWeb前端团队
  • PCL法线估计

    平面的法线是垂直于它的单位向量。在点云的表面的法线被定义为垂直于与点云表面相切的平面的向量。表面法线也可以计算点云中一点的法线,被认为是一种十分重要的性质。 法...

    点云PCL博主
  • CVPR2020 | 显著性目标检测,多尺度信息相互融合

    论文地址:https://arxiv.org/pdf/2007.09062.pdf

    AI算法修炼营
  • 适配器模式

    一、简介 1、适配器模式将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、在软件设计...

    用户1215536
  • 1.CSS Reset

    浏览器对标签进行了默认设置,所以在我们没有定义样式的时候,会有五花八门的效果 不同的浏览器设置的默认样式是由差异,效果也会有差异。 因为浏览器对标签进行设置...

    河湾欢儿

扫码关注云+社区

领取腾讯云代金券