微博与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命中率会很高。

目录
相关文章
|
Web App开发 存储 算法
微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
如何优雅地解决“消息序列号只要保证顺序性而不需要兼顾唯一性”的问题呢?这就是本文所要分享的内容,强烈建议深入理解和阅读。
2944 0
|
8天前
|
存储 算法 安全
微信团队分享:来看看微信十年前的IM消息收发架构,你做到了吗
好的架构是迭代出来的,却也少不了良好的设计,本文将带大家回顾微信背后最初的也是最核心的IM消息收发技术架构,愿各位读者能从中获得启发。
30 1
|
7天前
|
存储 Java 应用服务中间件
即时通讯技术文集(第36期):《跟着源码学IM》系列专题 [共12篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第36期。
12 0
|
16天前
|
存储 缓存 算法
IM技术干货:假如你来设计微信的群聊,你该怎么设计?
微信背后的这个IM群聊系统到底是如何实现的呢?这个问题一直困扰着,于是我决定深入了解一下,看看微信的群聊系统背后的设计是怎样的。
36 1
|
1月前
|
缓存 架构师
即时通讯技术文集(第35期):IM群聊技术合集(Part2) [共12篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第35 期。
32 1
|
2月前
|
消息中间件 存储 Rust
即时通讯技术文集(第34期):IM群聊技术合集(Part1) [共15篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第34 期。
27 2
|
3月前
|
消息中间件 存储 监控
Kafka:新闻发布站的比喻
Kafka:新闻发布站的比喻
26 1
|
5月前
|
JSON 安全 前端开发
得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现
本文将探秘得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现,帮助大家了解如何在IM聊天场景中提供高效、安全、可靠和良好的用户体验。
38 0
|
8月前
|
存储 运维 开发工具
社交软件源码的核心,IM即时通讯技术
即时通讯(Instant Messaging)在社交软件源码中有着实时沟通和传输信息技术等服务,比方说我们大家熟悉的微信,QQ等聊天软件,目前,IM技术不仅仅活跃在社交场景中,还在电商直播等各种场景有所表现,一个成熟的IM产品落地,大体上能够分成三个重要部分:客户端开发,服务端开发,服务运维。
社交软件源码的核心,IM即时通讯技术
|
11月前
实战:第二十一章:实现微博微信关注模型
实战:第二十一章:实现微博微信关注模型