消息发布、处理、订阅方法、装置及系统制造方法及图纸

技术编号:23486503 阅读:18 留言:0更新日期:2020-03-10 13:20
本申请实施例提供了一种消息发布、处理、订阅方法、装置及系统,方法包括:确定待发布消息所属的消息主题;以及,确定待发布消息在消息主题中所对应的虚拟队列;向消息服务节点发送消息发布请求;其中,在消息服务节点中,消息主题对应至少一个虚拟队列;消息发布请求中携带有待发布消息、待发布消息所属的消息主题和待发布消息所对应的虚拟队列序号,以使消息服务节点将待发布消息发布至上述消息主题中与虚拟队列序号对应的虚拟队列。本申请中,提高了消息订阅的并发度,可以减少排队等候的时间,订阅消息耗时少。

Methods, devices and systems of message publishing, processing and subscription

【技术实现步骤摘要】
消息发布、处理、订阅方法、装置及系统
本申请涉及信息处理领域,尤其涉及一种消息发布、处理、订阅方法、装置及系统。
技术介绍
消息中间件,利用高效可靠的消息传递机制进行数据交流,通过提供消息传递和消息排队模型可实现扩展进程间的通信。在消息中间件的消息传输模式中,发布/订阅模式是最常用的传输机制,发布者将消息发布到消息中间件上相关的消息主题,订阅者从该主题获取消息。一般的,消息中间件上的消息主题通过消息队列进行消息的存储,发布者将消息发布至消息队列,订阅者从消息队列获取消息。现有技术中,一个消息主题采用一个消息队列,该消息队列在同一时刻只能开放给一个订阅者。因此,若是在同一时刻存在多个订阅者订阅该消息主题,则需要排队等待,耗时较长。因此,有必要提出一种方案,以解决现有技术中当多个订阅者同时订阅同一消息主题时,需要排队等候,耗时较长的技术问题。
技术实现思路
本申请实施例的目的是提供一种消息发布、处理、订阅方法、装置及系统,在消息服务节点中,为每个消息主题虚拟出至少一个虚拟队列,每个虚拟队列都可以存储属于该消息主题的消息,即可以将该消息主题的消息发布在至少一个虚拟队列中。并且,每个订阅节点都可以从任意的虚拟队列中订阅消息,因此,存在多个订阅者同时订阅同一消息主题的消息时,可以通过至少一个虚拟队列同时向订阅节点推送订阅消息,提高了消息订阅的并发度,可以减少排队等候的时间,订阅消息耗时少。为解决上述技术问题,本申请实施例是这样实现的:本申请实施例提供了一种消息发布方法,包括:确定待发布消息所属的消息主题;以及,确定所述待发布消息在所述消息主题中所对应的虚拟队列;向所述消息服务节点发送消息发布请求;在所述消息服务节点中,所述消息主题对应至少一个虚拟队列;其中,所述消息发布请求中携带有所述待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号,以使所述消息服务节点将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列。本申请实施例还提供了一种消息处理方法,包括:消息服务节点接收发布节点发送的消息发布请求;其中,所述消息发布请求中携带有待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号;所述待发布消息所属的消息主题对应至少一个虚拟队列;所述消息服务节点将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列。本申请实施例还提供了一种消息订阅方法,包括:根据订阅消息主题所对应的虚拟队列的数目和自身所对应的消息分配比例,确定从消息服务节点获取订阅消息的数量;其中,在所述消息服务节点中,所述消息主题对应至少一个虚拟队列;向所述消息服务节点发送消息订阅请求;其中,所述消息订阅请求中携带订阅消息主题标识和所述订阅消息的数量,以使所述消息服务节点根据所述订阅消息的数量通过所述订阅消息主题所对应的虚拟队列将所述订阅消息推送给所述订阅节点;接收所述消息服务节点发送的订阅消息。本申请实施例还提供了一种消息发布装置,所述装置包括非暂态存储介质,所述非暂态存储介质存储有指令集,所述指令集被处理器执行时可实现本申请实施例提供的消息发布方法中任一项所述的方法。本申请实施例还提供了一种消息处理装置,所述装置包括非暂态存储介质,所述非暂态存储介质存储有指令集,所述指令集被处理器执行时可实现本申请实施例提供的消息处理方法中任一项所述的方法。本申请实施例还提供了一种消息订阅装置,所述装置包括非暂态存储介质,所述非暂态存储介质存储有指令集,所述指令集被处理器执行时可实现本申请实施例提供的消息订阅方法中任一项所述的方法。本申请实施例还提供了一种消息处理系统,所述系统包括消息服务节点、至少一个发布节点和至少一个订阅节点;所述发布节点,用于确定待发布消息所属的消息主题;以及,确定所述待发布消息在所述消息主题中所对应的虚拟队列,并向所述消息服务节点发送消息发布请求;其中,在所述消息服务节点中,所述消息主题对应至少一个虚拟队列;所述消息发布请求中携带有所述待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号;所述订阅节点,用于向所述消息服务节点发送消息订阅请求;其中,所述消息订阅请求中携带有订阅消息主题标识;以及,还用于接收所述消息服务节点推送的订阅消息;所述消息服务节点,用于接收所述发布节点发送的消息发布请求,并将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列;以及,用于接收所述订阅节点发送的消息订阅请求,确定所述订阅消息主题标识所对应的订阅消息主题,并确定推送给所述订阅节点的订阅消息的数量,并根据所述订阅消息的数量通过所述订阅消息主题所对应的虚拟队列将所述订阅消息推送给所述订阅节点。本实施例中的技术方案,在消息服务节点中,为每个消息主题虚拟出至少一个虚拟队列,每个虚拟队列都可以存储属于该消息主题的消息,即可以将该消息主题的消息发布在至少一个虚拟队列中。并且,每个订阅节点都可以从任意的虚拟队列中订阅消息,因此,存在多个订阅者同时订阅同一消息主题的消息时,可以通过至少一个虚拟队列同时向订阅节点推送订阅消息,提高了消息订阅的并发度,可以减少排队等候的时间,订阅消息耗时少。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例中,在消息服务节点中为消息主题虚拟出的消息队列的示意图。图2为本申请实施例提供的消息发布方法的方法流程图之一;图3为本申请实施例提供的消息处理方法的方法流程图之一;图4为本申请实施例提供的消息处理方法的方法流程图之二;图5为本申请实施例提供的消息处理方法中,消息服务处理订阅节点的消息订阅请求的方法流程图;图6为本申请实施例提供的消息处理方法的方法流程图之三;图7为本申请实施例提供的消息处理方法的方法流程图之四;图8为本申请实施例提供的消息订阅方法的方法流程图之一;图9为本申请实施例提供的消息订阅方法的方法流程图之二;图10为本申请实施例提供的消息发布装置的模块组成示意图;图11为本申请实施例提供的消息处理装置的模块组成示意图;图12为本申请实施例提供的消息订阅装置的模块组成示意图;图13为本申请实施例提供的消息处理系统的结构示意图;图14为本申请实施例提供的应用于消息处理系统的消息处理方法的方法流程图之一;图15为本申请实施例提供的应用于消息处理系统的消息处理方法的方法流程图之二;图16为本申请实施例提供的应用于消息处理系统的消息处理方法的方法流程图之三;图17为本申请实施例提供的应用于消息处理本文档来自技高网...

【技术保护点】
1.一种消息发布方法,所述方法包括:/n确定待发布消息所属的消息主题;以及,确定所述待发布消息在所述消息主题中所对应的虚拟队列;/n向消息服务节点发送消息发布请求;在所述消息服务节点中,所述消息主题对应至少一个虚拟队列;/n其中,所述消息发布请求中携带有所述待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号,以使所述消息服务节点将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列。/n

【技术特征摘要】
1.一种消息发布方法,所述方法包括:
确定待发布消息所属的消息主题;以及,确定所述待发布消息在所述消息主题中所对应的虚拟队列;
向消息服务节点发送消息发布请求;在所述消息服务节点中,所述消息主题对应至少一个虚拟队列;
其中,所述消息发布请求中携带有所述待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号,以使所述消息服务节点将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列。


2.如权利要求1所述的方法,每个所述虚拟队列包括两种状态:
锁定状态和无锁状态。


3.如权利要求1或2所述的方法,所述确定所述待发布消息在所述消息主题中所对应的虚拟队列,包括:
获取待发布消息的消息主键;其中,所述消息主键包括所述待发布消息中的指定字符串;
根据所述消息主键和预先设置的规则,确定所述待发布消息在所述消息主题中所对应的虚拟队列。


4.如权利要求3所述的方法,所述根据所述消息主键和预先设置的规则,确定所述待发布消息所对应的虚拟队列,包括:
将所述指定字符串转化为与其对应的数值;
将所述数值与所述待发布消息所属消息主题所对应的虚拟队列的数目相除取余数;
根据得到的余数确定所述待发布消息在所述消息主题中所对应的虚拟队列。


5.如权利要求4所述的方法,所述根据得到的余数确定所述待发布消息在所述消息主题中所对应的虚拟队列,包括:
将所述余数确定为所述待发布消息在所述消息主题中所对应的虚拟队列的序号;其中,在所述消息服务节点中,所述消息主题所对应的虚拟队列均设置有序号。


6.如权利要求1或2所述的方法,其中,所述方法应用于分布式系统。


7.一种消息处理方法,所述方法包括:
消息服务节点接收发布节点发送的消息发布请求;其中,所述消息发布请求中携带有待发布消息、所述待发布消息所属的消息主题和所述待发布消息所对应的虚拟队列序号;所述待发布消息所属的消息主题对应至少一个虚拟队列;
所述消息服务节点将所述待发布消息发布至所述消息主题中与所述虚拟队列序号对应的虚拟队列。


8.如权利要求7所述的方法,所述方法还包括:
所述消息服务节点接收订阅节点发送的消息订阅请求;其中,所述消息订阅请求中携带有订阅消息主题标识;
所述消息服务节点确定所述订阅消息主题标识所对应的订阅消息主题;
所述消息服务节点确定推送给所述订阅节点的订阅消息的数量,并根据所述订阅消息的数量通过所述订阅消息主题所对应的虚拟队列将所述订阅消息推送给所述订阅节点。


9.如权利要求8所述的方法,所述消息订阅请求中携带有订阅节点标识;
所述消息服务节点所述确定推送给所述订阅节点的订阅消息的数量,包括:
所述消息服务节点根据所述订阅节点标识,从预先存储的各个订阅节点所对应的消息分配比例中确定所述订阅节点所对应的消息分配比例;
所述消息服务节点根据所述订阅节点所对应的消息分配比例、所述订阅消息主题所对应的虚拟队列的数目,确定推送给所述订阅节点的订阅消息的数量;其中,通过一个虚拟队列向所述订阅节点推送一个订阅消息。


10.如权利要求7所述的方法,所述方法还包括:
所述消息服务节点接收订阅节点发送的消息订阅请求;其中,所述消息订阅请求中携带有订阅消息主题标识和订阅消息的数量;
所述消息服务节点确定所述订阅消息主题标识所对应的...

【专利技术属性】
技术研发人员:彭涛
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1