[发明专利]消息传递方法、系统和消息中间件系统有效
申请号: | 201510982219.0 | 申请日: | 2015-12-22 |
公开(公告)号: | CN105610926B | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 朱乐超;鲍大伦;宋威;张勇华;于鸿磊 | 申请(专利权)人: | 广州品唯软件有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 周清华 |
地址: | 510000 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 传递 方法 系统 中间件 | ||
本发明涉及一种消息传递方法、系统和消息中间件,该方法包括:接收消息生产端输入的特征参数,并根据特征参数选择匹配的中间件生成消息;消息包括消息体,消息体包括与匹配的中间件对应的标识;根据消息体的标识,查找与匹配的中间件对应的通道,并将消息存储在通道中;根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中;接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。该消息传递方法,能够根据消息生产端输入的特征参数选择匹配的中间件生成消息,支持多种类型的消息中间件,能够满足多种业务场景的需求。
技术领域
本发明涉及数据传输技术领域,特别是涉及一种消息传递方法、系统和消息中间件系统。
背景技术
由于广泛的存在跨应用的消息的传递和消费,在过去一段时间,我们使用轮询来解决这些问题,但是消息的及时性无法得到保证,而且存在大量的冗余设计,以致影响生产者的“业务主体性能”。
从框架建设角度来说,跨应用的消息的传递需要大量的信号通知和消息驱动来协调各个应用和环节。如果没有引入数据和事件驱动的概念,就无法从繁杂的业务和不断重叠的逻辑修改中解脱出来,完成实时准确的业务交付。在业界,开源社区和各大公司也有类似的中间件产品,比如腾讯tube,阿里的rocketmq,开源的kafka,rabbitmq等。tube、kafka能够照顾到海量的消息传输的场景,但是对于业务事务型要求很高的场景不能满足,而Rocketmq和rabbitmq的场景在事务上有比较丰富的支持,但是对于并发的需求和顺序的要求满足的不是很好。
因此,现有的中间件产品不能满足多样性场景的需求。
发明内容
基于此,有必要提供一种能满足多样性场景需求的消息传递方法、系统和消息中间件系统。
一种消息传递方法,包括:
接收消息生产端输入的特征参数,并根据特征参数选择匹配的中间件生成消息;消息包括消息体,消息体包括与匹配的中间件对应的标识;
根据消息体的标识,查找与匹配的中间件对应的通道,并将消息存储在通道中;
根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中;
接收消息消费端的消费请求,查找与消费端对应的队列,根据消费请求将对应的队列中的消息发送给消息消费端。
在其中一种实施方式中,根据消息体的标识,查找与匹配的中间件对应的通道,并将消息存储在通道中的步骤,包括:
获取通道的元数据,查找与消息体的标识对应的通道的元数据并确定元数据对应的通道;
将消息存储在通道中。
在其中一种实施方式中,根据通道确定与通道对应的路由路径,将消息路由至与通道对应的队列中的步骤,包括:
获取队列的元数据,查找与通道的元数据对应的队列的元数据并确定通道对应的队列;
将消息路由至队列中。
在其中一种实施方式中,特征参数包括:消息是否支持事务性,消息是否支持顺序性,消息是否需要重新添加到队列,消息是否需要设置过期时间、消息是否需要死信队列,消息是否需要用户域管理以及消息是否有数据的流量需求的任意一项或多项。
一种消息传递系统,包括:
消息生成模块,用于接收消息生产端输入的特征参数,并根据特征参数选择匹配的中间件生成消息;消息包括消息体,消息体包括与匹配的中间件对应的标识;
存储模块,用于根据消息体的标识,查找与匹配的中间件对应的通道,并将消息存储在通道中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州品唯软件有限公司,未经广州品唯软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510982219.0/2.html,转载请声明来源钻瓜专利网。