[发明专利]一种基于NoSQL的消息中间件的实现方法无效
申请号: | 201310116696.X | 申请日: | 2013-04-03 |
公开(公告)号: | CN103209214A | 公开(公告)日: | 2013-07-17 |
发明(设计)人: | 柯宗贵;柯宗庆;杨育斌;罗立新 | 申请(专利权)人: | 蓝盾信息安全技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/24;G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510665 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 nosql 消息 中间件 实现 方法 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于NoSQL的消息中间件的实现方法。
背景技术
消息中间件服务器,作为一个高效传输和可靠的中转站,消息的传输和存储是一个关键的环节。
消息服务器主要有以下两种要求:
1)可靠的存储
适合于消息需要可靠传输的应用环境。一般利用文件或数据库作为消息的存储方式,内存开销小,即使服务器宕机,重启后仍可从持久存储中恢复上一次已存储的消息。但以文件或数据库作为存储介质,在高负载的情况下,频繁I/O操作会降低消息中间件的吞吐量。
2)高效的传输
适合对性能要求非常苛刻,但是消息无需可靠持久的应用环境。基于内存来进行消息的高效缓存与转发,但在服务器宕机后不能保存消息。
此外,消息中间件对于数据集成和系统整合是非常重要的,以中间件为接口的各子系统通信,可避免子系统间的各种差异所带来的复杂性,如硬件平台、网络协议、开发语言所引起的。消息的时效、消息的持久、消息传输的高效性更值得关注。
针对以上不足提出了一种基于内存存储的NoSQL结合日志文件,既可解决消息服务的性能问题,也提供消息的可靠存储。
发明内容
本发明的目的是为了克服现有技术的缺陷,提供一种基于NoSQL的消息中间件的实现方法,在NoSQL中,数据的访问控制都在内存中进行,读写速度很高。把消息存储在NoSQL中,可保证消息缓存的高效,在对消息进行查找时能利用内存读写速度的优势,更快地定位消息。配合日志文件,更能保证在消息中间件服务器宕机后消息不丢失,并在重启后能恢复宕机前的消息。
一种基于NoSQL的消息中间件的实现方法,包括缓存转发和宕机恢复:
1缓存转发:
第一步:获取消息的参数,参数中包括了消息的内容和路由机制及服务质量等。主要有消息的内容,发送者和接收者的地址或主题,开始传输时间,有效期,优先级,由以上内容决定了在消息中间件的存储内容及发送时机。
第二步:对参数进行封装和序列化,序列化后的内容可以很方便地存储在日志文件和NoSQL中,也能从日志文件和NoSQL中通过反序列化得出原来的各种参数。
第三步:消息发送与存储,由四个线程(池)处理。
线程池A:监听指定的端口,接收消息。符合条件的消息立即发送,不符合发送条件的消息经过筛选后发给线程B做持久化处理。
线程B:把消息和标志域写入日志文件,标志域有新增、修改、删除。
线程C:把消息写入NoSQL。
线程D:对延迟发送或者发送失败但未超出最迟交付时间的消息进行重新发送。
2宕机恢复:
如果服务程序宕机,重启后可从日志文件中恢复重启前的消息。主要处理工作为:
1)从日志文件读取内容,对标志域进行判断,恢复重启前的消息。
2)把恢复后的消息写入文件,覆盖原来的日志文件。
3)把恢复后的消息存入NoSQL。
本发明提供的基于NoSQL的消息中间件带来的有益效果:
1)利用NoSQL做为缓存,可快速检索消息,提高消息中间件的吞吐量。
2)利用日志文件作为持久存储,即使在宕机时,也能保证在重启之后恢复所有的消息,将消息恢复成合理的状态。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中系统存储发送消息的流程图;
图2为本发明实施中宕机恢复的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于NoSQL的消息中间件的实现方法,包括缓存转发和宕机恢复。
缓存转发如图1所示,具体为:
第一步:获取消息的参数。
消息由两部分组成,包括消息头和消息体。
1)消息头内容有:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蓝盾信息安全技术股份有限公司,未经蓝盾信息安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310116696.X/2.html,转载请声明来源钻瓜专利网。