来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
引用此评论
引用:JackJiang 发表于 2022-08-30 11:29 1、评什么redis能存几十几百G的数据,java不能? 2、Redis里可以存用户id以及用户所连接im的实例信息,但 ...
引用:aihe521 发表于 2022-08-30 23:12 Java存储几十几百G应该靠的是集群吧; 如果Session存在单机上,发送C2C消息的时候,首先用Redis获取到 ...
7_)48C[2C)I6IZX9F61Y`U8.jpg (2.39 MB, 下载次数: 1747)
下载附件 保存到相册
2 年前 上传
引用:LFC 发表于 2022-09-09 01:02 我这里有一个方案,使用Bitmap数据结构保存用户的在线状态,读取状态时间复杂度为o(1),空间复杂度一个用 ...
引用:JackJiang 发表于 2022-09-09 10:30 "在判断用户在哪台服务器上时,需要遍历服务器来判断用户到底在哪台服务器上":没明白,为什么要遍历?
for(IMServer server:servers){ if(online(userid,server)){ //用户在这台服务器上,转发消息 return; } } //用户不在线
引用:LFC 发表于 2022-09-09 17:56 假设有n台服务器,判断用户在哪台机器上就是下面这个伪代码的逻辑 [mw_shl_code=java,true]for(IMServer ...
引用:JackJiang 发表于 2022-09-09 19:53 搞个集中式的key=userid,value=serverid,这样的列表管理在线用户
我这里有一个方案,使用Bitmap数据结构保存用户的在线状态,读取状态时间复杂度为o(1),空间复杂度一个用户占用1个bit位,也就是说在占用极低的内存的情况下又可以得到一个o(1)的时间复杂度,真是鱼和熊掌兼得。在这样的一个数据结构的加持下,立马可以为当前消息应该路由到哪一台IM服务器上提供了一个方案,IM集群的最大问题就解决了。我画个图(宿舍电脑没有visio,就用手画了)。
精华主题数超过100个。
连续任职达2年以上的合格正式版主
为论区做出突出贡献的开发者、版主等。
Copyright © 2014-2024 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.140625 second(s), 38 queries , Gzip On.