【技术实现步骤摘要】
消息发布、处理、订阅方法、装置及系统
本申请涉及信息处理领域,尤其涉及一种消息发布、处理、订阅方法、装置及系统。
技术介绍
消息中间件,利用高效可靠的消息传递机制进行数据交流,通过提供消息传递和消息排队模型可实现扩展进程间的通信。在消息中间件的消息传输模式中,发布/订阅模式是最常用的传输机制,发布者将消息发布到消息中间件上相关的消息主题,订阅者从该主题获取消息。一般的,消息中间件上的消息主题通过消息队列进行消息的存储,发布者将消息发布至消息队列,订阅者从消息队列获取消息。现有技术中,一个消息主题采用一个消息队列,该消息队列在同一时刻只能开放给一个订阅者。因此,若是在同一时刻存在多个订阅者订阅该消息主题,则需要排队等待,耗时较长。因此,有必要提出一种方案,以解决现有技术中当多个订阅者同时订阅同一消息主题时,需要排队等候,耗时较长的技术问题。
技术实现思路
本申请实施例的目的是提供一种消息发布、处理、订阅方法、装置及系统,在消息服务节点中,为每个消息主题虚拟出至少一个虚拟队列,每个虚拟队列都可以存储属于该消息主题的消息,即可以将该消息主题的消息发布在至少一个虚拟队列中。并且,每个订阅节点都可以从任意的虚拟队列中订阅消息,因此,存在多个订阅者同时订阅同一消息主题的消息时,可以通过至少一个虚拟队列同时向订阅节点推送订阅消息,提高了消息订阅的并发度,可以减少排队等候的时间,订阅消息耗时少。为解决上述技术问题,本申请实施例是这样实现的:本申请实施例提供了一种消息发布方法,包括: ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。