默认

理解IM消息“可靠性”和“一致性”问题,以及解决方案探讨

查看数: 121225 | 评论数: 5 | 收藏 4
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-06-07 00:30

正文摘要:

本文作者“商文默”,即时通讯网本次收录时有修订和改动。 1、写在前面 即时通讯网整理的大量IM技术文章中(见本文末“参考资料”一节),有关消息可靠性和一致性问题的文章占了很大比重,原因是IM这类系统抛开各 ...

评论

椎锋陷陈 发表于 3 年前
引用: 消息发送第二阶段,服务端推送消息到接收方,如果连接断开,会丢失消息。


这里与下文的表述似乎有点衔接不上,作者的原意应该是想说:
当接收方在线时,直接通过长连接推送消息;当接收方离线时,将消息暂存到离线消息数据库。

之后才是说连接重新建立后,拉取离线时间段内的所有消息。

不过这里确实会有问题,假如明明已经判断接收方在线了,在通过长连接推送消息时长连接却意外断开了,就有可能丢失消息。所以服务端同样也需要有重发机制,在保证收到接收方的ACK后才删除消息,假如一段时间内没有收到ACK,则需要重发。
动感毛猴 发表于 3 年前
马化腾头像你好,什么时候说下多端同步。
JackJiang 发表于 3 年前
引用:Shahala 发表于 2021-06-22 14:33
向量时钟这个思路是全局顺序吗,用这个会不会有点浪费了

这也是一个思路
IMDeveloper 发表于 3 年前
引用:Shahala 发表于 2021-06-22 14:33
向量时钟这个思路是全局顺序吗,用这个会不会有点浪费了

这个思路倒是第一次见到,果然做技术还是要多分享交流才行啊.....
Shahala 发表于 3 年前
向量时钟这个思路是全局顺序吗,用这个会不会有点浪费了

返回顶部