128M的块文件大约能存多少条数据?
一个目录下有多少文件的时候会显著影响文件读取性能?
如果消息历史记录较多时,这个重建消息索引文件的过程会特别耗时,IMS启动时间会比较长。
是否只能删除最前面的历史消息?
是否可以删除中间部分的历史消息?
如果丢失任何一个消息块文件,对整个系统会有什么影响?
如果客户端提供的last_received_id比较小,比如为0,那么必然要把所有的消息文件逐个遍历一遍,容易被恶意攻击。
我们应该控制一个最大遍历条数,防止这种大数据量的遍历!
LoadLatestMessages
、LoadHistoryMessages
、LoadGroupHistoryMessages
这三个方法就提供了limit参数,防止大数据量的遍历。
IM服务器有两个配置:storage_rpc_pool
和 group_storage_rpc_pool
。
注意,这里不是将单聊消息和群组消息分开存储,而是将超级群单独存储,放到group_storage_rpc_pool
指定的IMS服务器上。
TODO 有可能是群里用户太多,每条消息都要进入用户的消息队列,比较耗费磁盘资源。