[发明专利]消息分发方法在审
申请号: | 201911185462.4 | 申请日: | 2019-11-27 |
公开(公告)号: | CN112860446A | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 张杨 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 程超 |
地址: | 200433 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 消息 分发 方法 | ||
本发明提供一种消息分发方法,包括以下步骤:主节点接收来自多个从节点的多条上报信息,对所述多条上报信息进行分组,使得隶属于同一作业任务的上报信息被分配到同一个分组中;将每个分组中的所有上报信息按照上报时间顺序发送到与所述分组相对应的消息队列中,其中每个消息队列对应一个消息处理线程;所述主节点从消息队列中按照上报时间顺序依次获取上报信息,根据预设的处理规则对所述上报信息进行处理。
技术领域
本发明涉及分布式任务处理技术领域,特别涉及一种消息分发方法。
背景技术
在主从结构的分布式任务处理系统中,包含至少一个主节点和多个从节点。其中,主节点用于向从节点分配任务,并接收从节点上报的任务状态信息,根据不同的任务状态信息向从节点下发对应的命令。由于从节点上报的任务状态信息数量较多,因此现有技术中通常采用消息队列的形式存储从节点上报的所有任务状态信息,然后再由主节点依次到消息队列中提取任务状态信息并进行相应的处理。
消息队列目前包括单线程消息队列和多线程消息队列两种形式。单线程消息队列可以保证按照先进先出的顺序依次执行任务状态信息,但缺点是处理速度很慢,等待时间较长。多线程消息队列是通过多个线程维护多条消息队列,通过将任务状态信息随机分配到多条任务通道中的方式,能够提高消息处理速度。然而,随机分配任务的方式虽然能够在一定程度上提高消息处理速度,但是这种随机方式存在很大的盲目性,无法达到最佳的任务分配效果。
发明内容
本发明的目的是提供一种消息分发方法,以解决现有技术中存在的上述问题。
为实现上述目的,本发明提供了一种消息分发方法,包括以下步骤:
主节点接收来自多个从节点的多条上报信息,对所述多条上报信息进行分组,使得隶属于同一作业任务的上报信息被分配到同一个分组中;
将每个分组中的所有上报信息按照上报时间顺序发送到与所述分组相对应的消息队列中,其中每个消息队列对应一个消息处理线程;
所述主节点从消息队列中按照上报时间顺序依次获取上报信息,根据预设的处理规则对所述上报信息进行处理。
根据本发明提供的消息分发方法,其中,所述主节点接收来自多个从节点的多条上报信息,对所述多条上报信息进行分组,使得隶属于同一作业任务的上报信息被分配到同一个分组中的步骤包括:
主节点接收来自多个从节点的多条上报信息,获取所述上报信息中的项目编号信息;
对所述项目编号信息进行哈希计算,得到所述项目编号信息对应的分组编号;
将分组编号相同的上报信息划分到同一分组中。
根据本发明提供的消息分发方法,其中,所述对所述项目编号信息进行哈希计算,得到所述项目编号信息对应的分组编号的步骤包括:
根据主节点的计算能力确定并发线程数;
将所述上报信息中包含的项目编号信息对所述并发线程数进行取模运算,得到所述上报信息对应的余数;
根据预先设置的余数与分组编号之间的映射关系,获取与所述上报信息相对应的分组编号。
根据本发明提供的消息分发方法,其中,所述主节点接收来自多个从节点的多条上报信息,对所述多条上报信息进行分组,使得隶属于同一作业任务的上报信息被分配到同一个分组中的步骤包括:
主节点接收来自多个从节点的多条上报信息,获取所述上报信息中的从节点编号信息;
对所述从节点编号信息进行哈希计算,得到所述从节点编号信息对应的分组编号;
将分组编号相同的上报信息划分到同一分组中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911185462.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:集散货分拣方法、装置及存储介质
- 下一篇:一种基于状态机的任务调度方法