[发明专利]一种基于内存数据库缓存的高速消息队列溢出的处理方法无效
申请号: | 201310310533.5 | 申请日: | 2013-07-23 |
公开(公告)号: | CN103390049A | 公开(公告)日: | 2013-11-13 |
发明(设计)人: | 张金钟;秦家祥;华国栋;高洋;孙力斌 | 申请(专利权)人: | 南京联创科技集团股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/08 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 邓丽 |
地址: | 210062 江苏省*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内存 数据库 缓存 高速 消息 队列 溢出 处理 方法 | ||
技术领域
本发明属于数据通信中的数据安全领域,特别涉及一种基于内存数据库缓存的高速消息队列溢出的处理方法。
背景技术
物联网是新一代信息技术的重要组成部分。其英文名称是“The Internet of things”。由此,顾名思义,“物联网就是物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。面对越来越多的数据量,物联网网关将承受越来越大的挑战,尤其是消息接收队列和发送队列在消息数据高峰时候就会造成溢出的情况,从而使数据丢失,更严重的情况使服务器内存溢出,造成服务器崩溃。
基于前述分析,为了解决目前网关高速数据在队列中积压而造成队列最终溢出的问题,本案由此产生。
发明内容
本发明的目的,在于提供一种基于内存数据库缓存的高速消息队列溢出的处理方法,其可有效预防网关数据的丢失,提高系统的可靠性和稳定性,并且采用内存数据库队列,远程队列操作速度也能得到保障。
为了达成上述目的,本发明的解决方案是:
一种基于内存数据库缓存的高速消息队列溢出的处理方法,包括如下内容:将通信数据写入内存队列中;如果内存队列数据达到设定阈值,则将数据存到远程内存数据库中;如果在读数据的过程中,检测到本地队列中的数据已经下降到额定阈值,则启动数据转移线程,将远程内存数据库队列中的数据转移到本地队列。
上述将数据写入队列的操作步骤如下:
(11)接收需入队列的数据;
(12)在入队列之前先判断消息队列的数据量是否达到队列的最大阈值,若超过该最大阈值,转步骤(14),若没有超过该最大阈值,转步骤(13);
(13)判断内存数据库队列计数器的值是否大于0,如果大于0则转步骤(14),否则将接收的数据压入本地队列,然后返回步骤(11)继续接收数据;
(14)将前述需入队列的数据存入内存数据库,发送到远程内存数据库队列中,然后在内存数据库队列计数器中加1;然后返回步骤(11)继续接收数据。
上述步骤(12)中,最大阈值是指队列最大容量的90%。
上述将数据取出队列的操作步骤如下:
(21)从队列中取出数据;
(22)判断内存数据库队列计数器的值是否大于0,如果大于0则转步骤(23),否则转步骤(24);
(23)判断本地队列的数据量是否低于最小阈值,小于则启动队列转移线程,把程内存数据库队列中的数据转移到本地队列中,转步骤(24);否则直接转步骤(24);
(24)将步骤(21)中从队列中取出的数据进行处理。
上述步骤(23)中,最小阈值是指队列最大容量的60%。
上述在数据转移线程中将数据转移的操作步骤如下:
(31)线程开始;
(32)从对应的远程内存数据库队列中取出数据,同时将内存数据库队列计数器的数据量减1;
(33)将前述取出的数据压入到本地对应的队列中;
(34)判断消息队列的数据量是否达到队列的最大阈值,若超过该最大阈值,则退出线程,否则继续判断内存数据库队列计数器的值是否大于0,如果大于0,返回步骤(32),否则退出线程。
采用上述方案后,本发明由于使用远程内存数据库队列来对未处理的接收数据进一步地存储,相对于使用缓存于内存的方法来存储Socket数据,解决了在高速数据接收时,往往存在由于后端数据处理缓慢,而导致队列数据积压,最终使队列溢出、消息丢失的问题,从而使网络通信速度得到提高。
附图说明
图1是本发明的物联网网关消息队列示意图;
图2是本发明的防止消息队列溢出处理流程图;
图3是本发明的消息队列恢复的流程图;
图4是本发明的队列消息转移线程执行的流程图。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京联创科技集团股份有限公司,未经南京联创科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310310533.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种从含金氰化贵液中提取金的方法
- 下一篇:聊天机器人知识库及其构建方法