[发明专利]一种基于消息队列实现消息接收与转发的方法及系统有效
申请号: | 201210215896.6 | 申请日: | 2012-06-26 |
公开(公告)号: | CN103516580B | 公开(公告)日: | 2017-06-23 |
发明(设计)人: | 乐以长;芦华楠;黄婷;高超霖 | 申请(专利权)人: | 北京大学;北大方正集团有限公司;方正国际软件(北京)有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 北京天悦专利代理事务所(普通合伙)11311 | 代理人: | 田明,任晓航 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 消息 队列 实现 接收 转发 方法 系统 | ||
技术领域
本发明涉及数据通讯领域,具体涉及一种基于消息队列实现消息接收与转发的方法及系统。
背景技术
在政府或企业应用系统建设及系统整合过程中,通常采用消息中间件把分布在网络各处自治、异构的信息系统有效地集成为一体化的系统。现有消息中间件通常采用以数据交换服务器为数据交换中心的工作机制,消息发送端将消息发送给数据交换服务器,数据交换服务器再将消息转发给消息接收端,其优点在于客户端只需和服务器进行交互,消息发送端和消息接收端不必同时在线,消息发送端和消息接收端不必直接建立连接即可进行消息的传输。
现有技术中,数据交换服务器在收到消息时,待转发给消息接收端的消息驻留在内存中,或者将消息保存在数据库或文件系统中。将消息存放在内存中的弊端是内存资源总是有限的,数据交换服务器在大量接收、转发消息的情况,消息队列将被占满,后续的消息无法存放进消息队列而被丢弃,造成传输数据的丢失,而且如果出现掉电、系统异常崩溃等突发情况,即使写入消息队列的消息也会丢失。如果将消息保存在数据库或文件系统的外部存储系统中,消息转发需要从外部存储设备中读取,由于外部存储设备存取速度慢,会引起消息传输的性能瓶颈。
申请号为200810239601.2、公开号为CN101431476、发明名称为“一种基于消息队列的数据传输方法、服务器及系统”的中国专利申请,(申请人为中国工商银行股份有限公司),公开了一种通过接收消息队列和发送消息队列进行消息接收、转发的方法,该方法中接收消息队列和发送消息队列均在内存中,不能保证消息传输的可靠性。
申请号为200680023379.1、公开号为CN101208671、发明名称为“管理消息队列”的中国专利申请(申请人为起元软件有限公司),提供了一种用于将数据写入到多个队列的方法、相应的软件和系统,其中数据的每一部分被写到相应的一个队列。该方法虽然将每一队列同步到非易失性存储器,但是非易失性存储器上的数据是内存队列中数据的镜像,这种方式处理消息的能力决定于内存容量。
申请号为200910092421.0、公开号为CN102023974A、发明名称为“一种通过消息队列处理消息的方法、装置和系统”的中国专利申请(申请人中国移动通信集团公司),在内存中引入了第一消息队列用于接收消息,引入第二消息队列用于消费消息,并且将消息存入数据库中。这种方式消息接收和处理需要两个消息队列驻留在内存中,而且还依赖数据库触发器将消息从第一队列发送到第二消息队列,这种方式借助数据库触发器进行操作,处理复杂;在将消息从第一队列发送到第二队列时,涉及数据库读写操作,性能较差。。
另外现有技术在消息转发队列中直接转发队列中的消息,由于消息转发速度依赖网络带宽和运行消息接收端的计算机的综合性能,转发消息通常需要花费一定的时间,而在消息转发过程中,通常需要锁定消息转发队列,不能往消息转发队列存入新的需要转发的消息,这会引起系统内部资源阻塞,导致消息转发性能下降,影响消息传输的实时性。因此,现有技术无法满足企业级应用系统消息量大、要求数据高效、可靠传输的需求。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于消息队列实现消息接收与转发的方法及系统,在保证消息传输可靠性的同时提高了消息传送的实时性与传输性能。
为实现上述目的,本发明采用的技术方案如下:
一种基于消息队列实现消息接收与转发的方法,包括以下步骤:
(1)消息发送端将消息发送到数据交换服务器;
(2)数据交换服务器接收到消息发送端的消息后,根据所述消息的路由配置信息,确定所述消息的消息接收端;所述消息接收端为一个或者多个;
(3)数据交换服务器将接收到的待转发消息分别保存到每个消息接收端所对应的外存消息队列中;所述外存消息队列保存在外部非易失性存储设备上;
(4)数据交换服务器将所述待转发消息存放到消息接收端所对应的内存消息队列中;
(5)提取内存消息队列中的待转发消息,并将所述待转发消息转发给内存消息队列所对应的消息接收端。
进一步,如上所述的一种基于消息队列实现消息接收与转发的方法,数据交换服务器首次向某个消息接收端转发消息时为其创建内存消息队列,每个消息接收端对应唯一的内存消息队列。
进一步,如上所述的一种基于消息队列实现消息接收与转发的方法,步骤(3)与步骤(4)之间还包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学;北大方正集团有限公司;方正国际软件(北京)有限公司,未经北京大学;北大方正集团有限公司;方正国际软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210215896.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:智能IC卡水表防冷冻损坏采样装置
- 下一篇:售报精确噪音小的自动售报机