默认
发表评论 9
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
大家是怎么处理IM里离线消息漏读取这种并发问题的?
阅读(35108) | 评论(9 收藏 淘帖
大家是怎么处理IM里离线消息漏读取这种并发问题的?_并发问题.jpg

如果 A 发送给 B 的消息还没存入离线消息,但是这个时候 B 登录了并且拉取了离线消息,但是这个时候消息还没存入,导致这条消息没有被拉取到。

这种问题一般都是怎么解决的呢?客户端定时拉取?服务器定时判断有没有离线消息再去推送?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助 IM开发
上一篇:从根上理解高性能、高并发(一):深入计算机底层,理解线程与线程池下一篇:请问缓存消息丢失后IM服务端如何保证序列号的递增?
推荐方案
评论 9
引用:完蛋 发表于 2020-12-21 18:16
a和b操作的数据库应该是单线程的吧,这时候拉取离线消息的时候不能存消息。那么就是存入离线消息在拉取之后 ...

我不太理解这个收到不连续的消息是什么意思。是每个会话的消息都有一个序号吗?正如我所说的情况,很有可能是这条消息系统还没存入离线消息库,客户端已经拉取完毕了,客户端拉取的消息数为0,客户端也没法校验是不是连续的啊
引用:JackJiang 发表于 2020-12-21 20:55
从理论上来说,任何异步事件,都有可能存在时间差而出现问题。
但从实际使用来说,你说的这种情况,概率太 ...

概率是很小,但是如果发生了,不做兜底方案就意味着消息可能延迟很久才收到,甚至丢失
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部