用Go打造现代IM之消息模型选择

本文探讨了消息模型的两种类型——消息写扩散和读扩散模型,分析了它们的优缺点。WuKongIM选择了消息读扩散模型以应对大群需求,并通过维护最近会话列表解决读取复杂性。同时,命令类型的消息使用写扩散以确保执行。唐僧叨叨和悟空IM是两个开源即时通讯系统,提供底层通讯动力。
摘要由CSDN通过智能技术生成

消息模型分为:

消息写扩散模型

消息读扩散模型

什么是消息写扩散模型?

以一个万人群举例,成员发布一条消息,这条消息需要存储到每个成员自己的消息队列里,也就是一条消息需要存储一万份。(典型代表:微信)

优点:

用户读取自己消息的逻辑非常简单

缺点:

存储压力大,不适合做大群

每次获取离线消息是获取完用户整个消息队列里的消息,如果消息过多,会导致获取离线消息很慢。

什么是消息读扩散模型?

以一个万人群举例,成员发布一条消息,这条消息只存储一份,如果有多个群,成员获取消息需要带上群的标识分别读取群内消息。

优点:

写逻辑简单,存储压力小,适合做大群

获取离线消息很快,因为只需要获取每个会话的最近几条即可

缺点:

读取复杂

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值