请选择 进入手机版 | 继续访问电脑版

默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
IM新手关于聊天消息缓存和性能优化的问题请教
您好,IM新手有几个疑问想向您请教
1.之前看过一篇帖子,《[已回复] 对于Web端IM消息的浏览器端数据,该怎么处理?JS能实现缓存?http://www.52im.net/thread-2359-1-1.html,不是很理解里面说的消息缓存的具体应用场景和时机,目前我做的消息记录都是从数据库实时拉取,但也有做分页,这样就会有您说的同一份数据多次拉取的问题,如果做缓存的话,具体的思路还不是特别清楚,能否讲解一下?
2.还有目前发和收的思路是c-s-c中间直接存数据库,不知道多人同时发消息的话会不会存在数据库承载不住的潜在问题?请问怎么改进会比较好一些

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

标签:IM开发
上一篇:[已回复] 请教MobileIMSDK在红米手机熄屏,过一会打开出现的异常的疑问下一篇:求IM系统的总体架构设计方案,越详细越好
推荐方案
评论 4
1)对于Web端应用来说,你可以不用做缓存,也就是每次打开这个人的聊天界面时,从服务端拉取聊天记录即可。你先把这一步做好了,再去考虑缓存不缓存的事,我看你对这个逻辑不太理解,所以也没法想的更远做什么缓存的事。

2)直接存库肯定会存在性瓶颈,主流手法就是,不要让IM这种高性能的东西直接操作娄数据,而是在中间加一层缓冲层,比如MQ中件间或者redis,IM要存库的消息直接放到MQ或redis里,至于怎么从MQ或redis再存到库里,这就是单独写的消息者的处理逻辑了。这样的做法,就对IM进行解偶,也就不拖累它的性能了。
引用:JackJiang 发表于 2019-03-19 22:01
1)对于Web端应用来说,你可以不用做缓存,也就是每次打开这个人的聊天界面时,从服务端拉取聊天记录即可。 ...

好的谢谢
引用:JackJiang 发表于 2019-03-19 22:01
1)对于Web端应用来说,你可以不用做缓存,也就是每次打开这个人的聊天界面时,从服务端拉取聊天记录即可。 ...

还想请问,在您的这个MobileIMSDK-Web架构里用rabbitMQ做聊天消息的离线存储的思路是什么,服务端收到消息,不直接操作数据库,而是把消息放到中间件里,那我什么时候把它们存起来呢?需要在什么地方部署好生产者和消费者的推消息和拉消息呢?
引用:wangjiajia 发表于 2019-03-22 11:17
还想请问,在您的这个MobileIMSDK-Web架构里用rabbitMQ做聊天消息的离线存储的思路是什么,服务端收到消 ...

往MQ里放消息叫生产者,从MQ里拉消息叫消费者,你选好一个MQ模型后,生产者和消息者都由MQ的库帮你写好了,你用就行了,有消息它的消费者会自动收到通知,收到后,你的代码直接存库就完事
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部