65 Star 1.2K Fork 372

blue / 盒子IM

 / 详情

麻烦问下后端拉取消息那块为什么不使用redis的发布订阅模式?

待办的
创建于  
2024-04-09 14:43

能讲一下为什么使用循环拉取吗?感觉redis的发布订阅好像能少写很多代码,是不是还有其他的考量?

评论 (2)

孟泽林 创建了任务

主要是数据不安全。redis的发布订阅功能在消费者断开连接后,会清空队列的数据

清空队列也无所谓吧,因为不是消息已经入库了吗,用户终端拉取离线消息的时候还是会获取这些消息。
如果是循环拉取,当im-server挂机重启之后,用户终端不能及时重连的话,消息还是会直接进入离线消息的逻辑的。
如果是订阅模式,好处就是增加了实时性然后减少代码量,方便后期维护扩展。
但是唯一有问题的我觉得在于消息结果,如果im-platform挂机了,消息结果也就消失了,但是我觉得这些采用发布订阅模式的好处大于坏处。

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(3)
12469896 brother one 1705154118 7822491 mzl zelin 1625794065
Java
1
https://gitee.com/bluexsx/box-im.git
git@gitee.com:bluexsx/box-im.git
bluexsx
box-im
盒子IM

搜索帮助

344bd9b3 5694891 D2dac590 5694891