消息队列的存储方法技术

技术编号:14938912 阅读:290 留言:0更新日期:2017-04-01 00:56
一种消息队列的存储方法,包括如下步骤:当消息生产数量增加时,写入内存中;当内存的存储量到达上限后,剩余消息继续存入redis中;当redis存储量到达上限后,剩余消息会继续存储到mysql中;当mysql存储量到达峰值后,剩余消息存储到文件中,文件可以是本地文件或网络文件。当消息队列被消费时,内存中的消息数量减小;当内存中的消息数量减少到一个阈值后,将redis里面的数据补充到内存中,并且检测redis中的空间余量;当redis里面的数据量降低到容量的50%后,将mysql数据库中的消息补充到redis中,并且检测mysql中的消息余量;当mysql里面的数据低于容量50%后,将File文件中的数据批量导入数据库中。本发明专利技术提出了一种消息队列的存储方法,多级存储和消费减小了存储装置的压力。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,具体涉及一种消息队列的存储方法
技术介绍
在软件工程中,队列技术的应用很普遍,比如windows系统的键盘与鼠标的点击,手机中的短信收发、商城中的库存入库、出库等技术实现,队列技术主要用来实现计算单元的解耦、冗余、水平扩展、灵活搭配和削峰填谷等情况,对任何IT架构或各种应用软件来说,消息队列都是一个至关重要的组件。伴随着大数据时代的到来,人们对于海量数据的挖掘和运用情形将会越来越多,这预示着新一波生产率增长和消费者盈余浪潮的到来,因此急需一个高可用、高吞吐、高效率的队列方案来支撑业务系统的发展。
技术实现思路
本专利技术的目的是针对现有的技术存在的不足,提出了一种工作效率高的消息队列的存储方法。本专利技术所解决的技术问题采用以下技术方案来实现一种消息队列的存储方法,包括如下步骤:(一)存储消息1.当消息生产数量增加时,写入内存中;2.当内存的存储量到达上限后,剩余消息继续存入redis中;3.当redis存储量到达上限后,剩余消息会继续存储到mysql中;4.当mysql存储量到达峰值后,剩余消息存储到文件中,文件可以是本地文件或网络文件。(二)消费消息1.当消息队列被消费时,内存中的消息数量减小;2.当内存中的消息数量减少到一个阈值后,启动一个线程任务,将redis里面的数据补充到内存中,并且检测redis中的空间余量;3.当redis里面的数据量降低到容量的50%后,启动一个线程任务,将mysql数据库中的消息补充到redis中,并且检测mysql中的消息余量;4.当mysql里面的数据低于容量50%后,启动一个线程,将File文件中的数据批量导入数据库中。所述的第1级的’内存存储’级别为k级,消息数量从几k到几百k的数量。所述的第2级缓存的redis支持存储级别为M级,消息数量可达几万到几百万的数量。所述的第3级缓存的mysql支持存储级别为G级,消息数量可达几千万的数量。所述的第4级缓存的File支持存储级别为T级,存储能力和硬件配置正相关。本专利技术的有益效果为:提出了一种消息队列的存储方法,减少开发和维护成本,增加系统数据处理能力,可以让更多用户体验大数据的乐趣,且可以判断用户建立的标引源数据是否合法。附图说明图1是本专利技术的系统结构示意图;图2是本专利技术的流程图。具体实施方式参照附图,一种消息队列的存储方法,包括如下步骤:(一)存储消息1.当消息生产数量增加时,写入内存中;2.当内存的存储量到达上限后,剩余消息继续存入redis中;3.当redis存储量到达上限后,剩余消息会继续存储到mysql中;4.当mysql存储量到达峰值后,剩余消息存储到文件中,文件可以是本地文件或网络文件。(二)消费消息1.当消息队列被消费时,内存中的消息数量减小;2.当内存中的消息数量减少到一个阈值后,启动一个线程任务,将redis里面的数据补充到内存中,并且检测redis中的空间余量;3.当redis里面的数据量降低到容量的50%后,启动一个线程任务,将mysql数据库中的消息补充到redis中,并且检测mysql中的消息余量;4.当mysql里面的数据低于容量50%后,启动一个线程,将File文件中的数据批量导入数据库中。所述的第1级的’内存存储’级别为k级,消息数量从几k到几百k的数量。所述的第2级缓存的redis支持存储级别为M级,消息数量可达几万到几百万的数量。所述的第3级缓存的mysql支持存储级别为G级,消息数量可达几千万的数量。所述的第4级缓存的File支持存储级别为T级,存储能力和硬件配置正相关。本专利技术提出了一种消息队列的存储方法,多级存储和消费减小了存储装置的压力,更加高吞吐、高效率的消息队列的存储方法来支撑业务系统的发展。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本专利技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本专利技术的精神或范围的情况下,在其它实施例中实现。因此,本专利技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。本文档来自技高网...
消息队列的存储方法

【技术保护点】
一种消息队列的存储方法,其特征在于包括如下步骤:(一)存储消息1.当消息生产数量增加时,写入内存中;2.当内存的存储量到达上限后,剩余消息继续存入redis中;3.当redis存储量到达上限后,剩余消息会继续存储到mysql中;4.当mysql存储量到达峰值后,剩余消息存储到文件中,文件可以是本地文件或网络文件,(二)消费消息1.当消息队列被消费时,内存中的消息数量减小;2.当内存中的消息数量减少到一个阈值后,启动一个线程任务,将redis里面的数据补充到内存中,并且检测redis中的空间余量;3.当redis里面的数据量降低到容量的50%后,启动一个线程任务,将mysql数据库中的消息补充到redis中,并且检测mysql中的消息余量;4.当mysql里面的数据低于容量50%后,启动一个线程,将File文件中的数据批量导入数据库中。

【技术特征摘要】
1.一种消息队列的存储方法,其特征在于包括如下步骤:(一)存储消息1.当消息生产数量增加时,写入内存中;2.当内存的存储量到达上限后,剩余消息继续存入redis中;3.当redis存储量到达上限后,剩余消息会继续存储到mysql中;4.当mysql存储量到达峰值后,剩余消息存储到文件中,文件可以是本地文件或网络文件,(二)消费消息1.当消息队列被消费时,内存中的消息数量减小;2.当内存中的消息数量减少到一个阈值后,启动一个线程任务,将redis里面的数据补充到内存中,并且检测redis中的空间余量;3.当redis里面的数据量降低到容量的50%后,启动一个线程任务,将mysql数据库中的消息补充到redis中,并且检测mysql中的...

【专利技术属性】
技术研发人员:崔运海
申请(专利权)人:天津海量信息技术股份有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1