分层架构 IM 系统之消息收发功能设计与实现

“消息收发” 是 IM 系统最最核心的业务逻辑模块,本篇文章是整个 “分层架构 IM 系统” 的核心!

IM,即 “即时通讯”,要求消息具备 “及时性” 和 “可靠性”:

及时性,要求消息的收发需要很低的延时,在线双方通过消息交流时,没有明显的滞后感。

可靠性,要求消息不能丢失;对于消息发送方来说,只要消息发送成功了,消息就会一直存在服务端,不会丢失(除非因产品策略,删除久远的历史消息);对于服务端来说,只要接收方在线,一定会把消息送达到接收方,如果接收方不在线,会通过其他通道来触达和通知到接收方用户,体现出 “即时通讯” 的优势 。

在 IM 单体架构中,我们分析过客户端不断对服务端进行轮询获取消息的方式(单体架构 IM 系统之核心业务功能实现),这种方式我们称之为 “信箱模型”; 信箱模型虽然实现比较简单,但是消息的及时性不好,因为存在大量的无效请求,会造成服务端的资源浪费和负载,信箱模型比较适合用户规模比较小的场景,不适合分层架构的 IM 系统。

分层架构的 IM 系统,通常基于服务端直接推送的方式实现消息从服务端到客户端的传输,见下图。

客户端 A 发送消息到服务端后,服务端直接将消息推送到客户端 B,就好像服务端知道客户端 B 的电话号码一样,可以直接联系到客户端 B,我们把这样的消息推送模型叫做 “电话模型”,这里的 “电话” 往往就是 长连接。

分层架构 IM 系统的消息收发流程,为了做到 “及时性” 和 “可靠性”,我们划分为三个阶段:生产消息阶段、推送消息阶段,确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值