一种消息队列实现方法技术

技术编号:19341463 阅读:33 留言:0更新日期:2018-11-07 13:39
本发明专利技术提供了一种消息队列实现方法,该方法包括:配置消息队列,启动消息队列服务;利用消息队列接收外部程序挂载的消息数据包,并缓存在结点存储队列中;通过上述的消息队列,将结点消息数据分发到外部的数据接收方,接收方按照约定的格式解析消息数据包的内容;接收外部程序的消息数据包调用请求,按照调用请求,将对应结点的消息数据封装,发送给请求方。本发明专利技术方法有利于提高消息数据包处理的效率和实时性,提高消息队列的灵活行。可以降低消息数据收发的耦合性、提升灵活度。

A method of message queue implementation

The invention provides a method for realizing message queue, which includes: configuring message queue and starting message queue service; receiving message packets mounted by external programs using message queue and caching them in node storage queue; distributing node message data to external data reception through the message queue mentioned above. The receiver parses the content of the message packet according to the agreed format, receives the message packet call request of the external program, encapsulates the message data of the corresponding node and sends it to the requester according to the call request. The method of the invention is advantageous to improving the efficiency and real-time of message packet processing and the flexible line of message queue. It can reduce the coupling and enhance the flexibility of message data transceiver.

【技术实现步骤摘要】
一种消息队列实现方法
本专利技术涉及计算机
,特别涉及一种消息队列实现方法。
技术介绍
消息队列是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行,不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。消息队列是一种独立的系统软件或服务程序,分布式应用系统借助这种软件在不同的技术之间共享资源,管理计算资源和网络通讯。它在计算机系统中是一个关键软件,它能实现应用的互连和互操作性,能保证系统的安全、可靠、高效的运行。消息队列位于用户应用和操作系统及网络软件之间,它为应用提供了公用的通信手段,并且独立于网络和操作系统。为开发者提供了公用于所有环境的应用程序接口,当应用程序中嵌入其函数调用,它便可利用其运行的特定操作系统和网络环境的功能,为应用执行通信功能。目前在生产环境,使用较多的消息队列有ActiveMQ、RabbitMQ、Kafka、MetaMQ、RocketMQ等,实现了消息数据包的点对点传输、发送/订阅等数据分发功能。但这些消息队列中的存储的消息数据都是平级的,采用“先入先出”的机制进出消息队列,而在实际的生产环境中,消息数据的重要性是不同的,应用系统更关注那些对系统性能有关键影响的消息数据,这些消息数据应该优先进行处理,而现在常用的消息队列无法实现这些应用需求。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提供一种新的消息队列实现方法,该方法有利于提高消息数据包处理的效率和实时性,提高消息队列的灵活行。本专利技术的目的是通过以下的技术方案来实现的。本专利技术是一种基于消息队列实现方法,其特点是,该方法包括:配置消息队列,启动消息队列服务;利用消息队列接收外部程序挂载的消息数据包,并缓存在结点存储队列中;通过上述的消息队列,将结点消息数据分发到外部的数据接收方,接收方按照约定的格式解析消息数据包的内容;接收外部程序的消息数据包调用请求,按照调用请求,将对应结点的消息数据封装,发送给请求方。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,所述的消息队列采用树状分层存储,包括:由结点嵌套构成;所有的消息数据包都属于某个结点;每个结点存储队列遵循存储规范的要求。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,由结点嵌套构成的树状的消息数据存储结构,是一个n个结点的有限集,只有一个根结点,根结点没有前驱结点,其余每个结点有且只有一个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点是一个或者是多个,树中任意一个结点的各子结点之间的次序无关联关系;每个结点配置一段存储空间,实现结点属性数据和结点消息数据的存储。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,所述配置部署消息队列包括:搭建消息队列服务程序,并开启队列服务;读取队列重构日志文件,构建树状分层存储结构;确定消息队列的访问路径、访问端口。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,将所述的消息队列的访问路径、访问端口,进行数据加密后,在局域网范围内进行广播;以使数据发送方解析消息队列访问路径和访问端口,向所述消息队列发送消息数据包;以使数据接收方解析消息队列访问路径和访问端口,接收所述消息队列转发的消息数据包。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,构建消息数据包的规范格式,包括:消息头,携带消息数据在树中的结点路径;消息体,包括消息ID、消息级别、时间戳、消息内容;通过消息ID可以精确定位消息及所处的结点。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,消息头包含消息存储路径数据,是一个分层的结点字符串,各结点通过“/”进行分隔;消息体由消息ID、消息级别、时间戳、消息内容四部分构成,该ID全局唯一;消息内容可以是文本数据、二进制数据或者字符串数据三种类型。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,所述的树结点存储的消息数据的存储方式以及进出队列规则,包括:结点为环状存储结构,接收发送方的消息数据包按序循环插入结点存储队列,队列长度固定,消息数据包接收方可以请求最新消息数据包,或者是最新点之前固定数量的消息数据;或者,结点为线性存储结构,消息数据包按照先进先出规则进行处理,按照消息数据包时间先后顺序处理;消息数据包按照先进后出规则进行处理,后进队的消息数据包优先处理。消息数据包具有优先级属性,优先级高的消息数据包优先插进结点存储队列前端,优先进行处理。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,该方法通过读取配置信息,自动通过重构日志生成消息队列存储结构;接收网络调用请求;接收外部程序发送消息数据包,解析消息头数据,识别消息头中包含的挂载结点路径数据,如果消息队列中已经存在对应的路径结点,则将消息体写入对应结点,如果不存在,则首先生成新的树结点,然后将消息体写入对应结点;接收外部程序的定制请求指令;定制方法分为三种:按结点精确定制,请求不同深度单个结点的消息数据;按层模糊定制,请求同级结点的消息数据;按结点嵌套定制,请求本结点及所有子结点的消息数据。本专利技术所述的基于消息队列实现方法,其进一步优选的技术方案或者技术特征是,消息队列的数据访问接口包括:通过UDP、TCP或HTTP方式实现消息队列系统的监视;实现消息队列结点分层结构的重构;实现各结点消息数据传输状态监视;实现各个结点消息数据变化的实时更新监视。与现有技术相比,本专利技术的有益效果为:本专利技术方法是解决复杂应用系统的功能解耦的重要技术手段,具有异步消息处理、流量削锋等功能,实现一个用系统高性能,高可用,可伸缩和最终一致性架构。通过优选所述的消息队列的存储结构,容许外部程序精确接收和处理的消息数据包,而不会收到无关的消息数据包,节约计算资源、提高处理性能,消息数据包划分优先级,优先级高的消息数据包排在结点存储队列的前端,外部程序优先收到这类消息数据包。本专利技术方法有利于提高消息数据包处理的效率和实时性,提高消息队列的灵活行。可以降低消息数据收发的耦合性、提升灵活度。附图说明图1为消息队列树形存储结构图;图2为外部程序挂载消息数据包流程图;图3为结点为环状存储结构存储队列示意图;图4为结点为线性存储结构存储队列,先进先出示意图;图5为结点为线性存储结构存储队列,后进先出示意图;图6为具有优先级的消息数据包进出队规则示意图。具体实施方式为使本专利技术实施的目的、技术方案和优点更加清楚,下面将结合具体实施例,对本专利技术中的技术方案进行清楚、完整地描述。实施例1,一种基于消息队列实现方法,该方法包括:配置消息队列;启动消息队列服务;利用消息队列接收外部程序挂载的消息数据包,并缓存在结点存储队列中;通过上述的消息队列,将结点消息数据分发到外部的数据接收方,接收方按照约定的格式解析消息数据包的内容;接收外部程序的消息数据包调用请求,按照调用请求,将对应结点的消息数据封装,发送给请求方。实施例2,实施例1所述的基于消息队列实现方法中,所述的消息队列采用树状分层存储,包括:由结点嵌套构成;所有的消息数据本文档来自技高网...

【技术保护点】
1.一种基于消息队列实现方法,其特征在于,该方法包括:配置消息队列;启动消息队列服务;利用消息队列接收外部程序挂载的消息数据包,并缓存在结点存储队列中;通过上述的消息队列,将结点消息数据分发到外部的数据接收方,接收方按照约定的格式解析消息数据包的内容;接收外部程序的消息数据包调用请求,按照调用请求,将对应结点的消息数据封装,发送给请求方。

【技术特征摘要】
1.一种基于消息队列实现方法,其特征在于,该方法包括:配置消息队列;启动消息队列服务;利用消息队列接收外部程序挂载的消息数据包,并缓存在结点存储队列中;通过上述的消息队列,将结点消息数据分发到外部的数据接收方,接收方按照约定的格式解析消息数据包的内容;接收外部程序的消息数据包调用请求,按照调用请求,将对应结点的消息数据封装,发送给请求方。2.根据权利要求1所述的基于消息队列实现方法,其特征在于,所述的消息队列采用树状分层存储,包括:由结点嵌套构成;所有的消息数据包都属于某个结点;每个结点存储队列遵循存储规范的要求。3.根据权利要求2所述的基于消息队列实现方法,其特征在于,由结点嵌套构成的树状的消息数据存储结构,是一个n个结点的有限集,只有一个根结点,根结点没有前驱结点,其余每个结点有且只有一个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点是一个或者是多个,树中任意一个结点的各子结点之间的次序无关联关系;每个结点配置一段存储空间,实现结点属性数据和结点消息数据的存储。4.根据权利要求1所述的基于消息队列实现方法,其特征在于,所述配置部署消息队列包括:搭建消息队列服务程序,并开启队列服务;读取队列重构日志文件,构建树状分层存储结构;确定消息队列的访问路径、访问端口。5.根据权利要求4所述的基于消息队列实现方法,其特征在于,将所述的消息队列的访问路径、访问端口,进行数据加密后,在局域网范围内进行广播;以使数据发送方解析消息队列访问路径和访问端口,向所述消息队列发送消息数据包;以使数据接收方解析消息队列访问路径和访问端口,接收所述消息队列转发的消息数据包。6.根据权利要求1所述的基于消息队列实现方法,其特征在于,构建消息数据包的规范格式,包括:消息头,携带消息数据在树中的结点路径;消息体,包括消息ID、消息级别、时间戳、消息内容;通过消息ID可以精确定位消息及所处的结点。...

【专利技术属性】
技术研发人员:刘建华杜云霞高桃桃张新军
申请(专利权)人:连云港杰瑞电子有限公司
类型:发明
国别省市:江苏,32

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

1