二进制消息管理的方案
来源:互联网 发布:淘宝网址生成淘口令 编辑:程序博客网 时间:2024/05/19 23:12
现在旺旺不管收到消息还是发送消息都要先将消息写入数据库,这样有两个问题:
1、数据库越来越大,导致写入速度越来越慢,影响系统性能。
2、数据库越来越大,随着记录数的增加,取最近聊天记录非常慢,导致自动打开聊天窗口并且自动显示最近聊天记录的时候窗口打开非常慢,严重影响用户体验。
3、由于存在过多的线程同时写库,又没有相应的多线程同步措施,导致数据库损坏的可能性增加。
由此,我在想,其实没有查询记录的需要(就是消息管理器的功能),数据库也没有存在的必要了。
是否可以采用二进制的方案呢?这样效率和速度肯定不成问题的。
所以设计开发了二进制的消息管理方案:
1、最近的和新的消息采用二进制文件保存。
2、和每个用户的聊天,每个群的聊天记录放在一个独立的文件里,发送和接收消息,去最近聊天记录都操作二进制文件。
3、二进制文件的大小自动调整,是二进制文件的大小小于300条记录所需要的空间。
4、为了控制产生过多的二进制文件,对二进制文件进行清理:策略是联系人和群一直保留,陌生人达到?天没有聊天就自动清除。
5、为了使升级上来的用户能够看到以前的最近聊天记录,第一次从数据库取来最近聊天记录保存到二进制文件。
这样解决了聊天性能的问题。
但是历史聊天记录显然是要的,查询功能也是要的。
所以又写了一个后台线程去异步保存聊天记录到消息数据库。
因为是异步的,所以对性能几乎没有影响;
因为只有一个线程,所以数据库损坏的可能性大大减小。
并且可以采用相应的策略去做备份和恢复,这些都在后台自动进行,不影响前台使用。
周林
- 二进制消息管理的方案
- json传输二进制的方案
- json传输二进制的方案
- 权限的管理方案
- 网站的管理方案
- json传输二进制的方案(base64编码二进制)
- 我的文件管理方案
- 现有的身份管理方案
- 关于android 的消息推送问题解决方案
- 基于消息的分布式事务简单方案
- kafka处理超大消息的方案
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- 基于二进制的权限管理与验证
- FOS的消息队列管理
- 统计二进制中1的个数(四种方案)
- 国际国内cms系统开源网址大综合
- Get Things Done
- Oracle10g常见HINT的用法
- 基于C#的GIS开发_开发平台搭建
- 如何待机, 休眠, 关闭, 重新启动机器(MOBILE)
- 二进制消息管理的方案
- 怎么判断_variant_t的值是什么类型
- 如何改变Linux主机名
- bat脚本方便备份文件
- 学习的革命——杂谈程序员的学习力
- 美国消费靠不住 大摩:中国10年后贡献超美
- Hibernate save and saveOrUpdate-转帖
- 寻找丑数
- JMX技术简介