默认

如何保障分布式IM聊天系统的消息有序性(即消息不乱)

查看数: 6195 | 评论数: 6 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2026-01-12 00:30

正文摘要:

本文引用了45岁老架构师尼恩的技术分享,即时通讯网有修订和重新排版。 1、引言 分布式IM聊天系统中,IM消息怎么做到不丢、不重、还按顺序到达? 这个问题,涉及到IM系统的两个核心: 1)消息不能丢(可靠性 ...

评论

Frank 发表于 1 个月前
微信没有seq
JackJiang 发表于 1 个月前
引用:BanTanger 发表于 2026-02-06 16:27
还有一点想请教一下,如果采用 SEQ 局部序号,是否还需要 ServerID 全局序号呢,我看目前市面上开源的IM项 ...

你可以参考微信的id生成规则:IM消息ID技术专题(一):微信的海量IM聊天消息序列号生成实践
JackJiang 发表于 1 个月前
引用:BanTanger 发表于 2026-02-06 15:56
站长,这里我有个疑问,若是某些消息在投递的时候有丢失,难道接收方要通过滑动窗口等待他重试抵达再展示 ...

作者的意思是,先显示,后到的按序号可以插入显示的
BanTanger 发表于 1 个月前
还有一点想请教一下,如果采用 SEQ 局部序号,是否还需要 ServerID 全局序号呢,我看目前市面上开源的IM项目大多还是两者共存呀
BanTanger 发表于 1 个月前
引用:无论消息以什么顺序到达,统统按 seq 升序排列后再上屏。哪怕第100条先到,第1条后到,也能正确归位。这也是为什么我们强调“客户端必须信任服务端 SEQ”——它是唯一真相源。

站长,这里我有个疑问,若是某些消息在投递的时候有丢失,难道接收方要通过滑动窗口等待他重试抵达再展示吗,这样实时性不就得不到保证了吗
JackJiang 发表于 2 个月前

—— 下篇如何保障分布式IM聊天系统的消息可靠性(即消息不丢)已发布,敬请阅读 ——

返回顶部