消息队列的消息调度方法及消息调度装置制造方法及图纸

技术编号:12821423 阅读:55 留言:0更新日期:2016-02-07 12:23
本发明专利技术公开了一种消息队列的消息调度方法及消息调度装置,其中,所述方法包括:根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类型对应的消息队列,其中,所述多条消息队列中的各消息队列对应相应的业务类型;在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队列,然后从所述目标消息队列中调度用于进行后继处理的消息。采用本发明专利技术,能够实现系统资源(例如,数据处理能力、数据读取能力等)的合理配置,提高系统效率(包括响应时间和吞吐率)并实现业务价值的最大化。

【技术实现步骤摘要】

本专利技术涉及消息队列,更为具体而言,涉及一种消息队列的消息调度方法及消息调度装置
技术介绍
随着业务量的增加和业务场景的多样化,现有应用服务器部署的应用日渐庞大和难以维护,为简化系统架构和提高处理效率,消息队列的处理方法得到普遍的应用。在维护的消息队列机制中,当用户发起请求时响应线程根据业务场景的需要产生并投递消息至队列,处理线程从队列中提取消息并进行下一步业务处理,从而实现业务服务层的解耦。对队列调度的控制,可实现消息之间的排序和缓冲,提供线程之间异步通信和处理的机制,从而成为应用层中不可或缺的中间件层。由于消息队列及其调度控制方法是组建高性能高扩展性系统的关键,高效可靠的消息队列机制在一定程度上决定了系统的响应时间和吞吐率。现有消息队列机制普遍为单队列单线程处理,或者横向扩展后的多队列多线程处理。而由于在消息队列的消息调度方法中,通常采用轮询和先进先出,并根据投递时间的顺序进行处理,因此,各个队列被平等对待,紧急消息无法得到优先处理,系统资源也无法得到充分利用。
技术实现思路
鉴于现有技术的上述缺陷,本专利技术实施方式提供了一种消息队列的消息调度方法及消息调度装置,其通过改变消息投递和消息调度方式,能够实现系统资源(例如,数据处理能力、数据读取能力等)的合理配置,保证系统效率。具体地,本专利技术实施方式提供了一种消息队列的消息调度方法,其包括:根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类型对应的消息队列,其中,所述多条消息队列中的各消息队列对应相应的业务类型;在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队列,然后从所述目标消息队列中调度用于进行后继处理的消息。相应地,本专利技术实施方式还提供了一种消息队列的消息调度装置,其包括:消息投递模块,用于根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类型对应的消息队列,其中,所述多条消息队列中的各消息队列对应相应的业务类型;消息调度模块,用于在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队列,并从所述目标消息队列中调度用于进行后继处理的消息。采用本专利技术各种实施例具有下述有益效果:通过分业务类型的消息投递以及通过消息队列的关键特征值确定从哪个消息队列调度消息,能够综合消息队列的关键特征进行消息调度,实现系统资源(例如,数据处理能力、数据读取能力等)的合理配置,提高系统效率(包括响应时间和吞吐率)并实现业务价值的最大化。附图说明图1是根据本专利技术实施方式的一种消息队列的消息调度方法的流程示意图;图2A是根据本专利技术实施例的一种消息队列的消息调度装置的框图的一例;图2B是图2A所示消息调度装置的消息调度模块的框图的一例;图2C是根据本专利技术实施例的一种消息队列的消息调度装置的框图的另一例。具体实施方式为了便于理解本专利技术技术方案的各个方面、特征以及优点,下面结合附图对本专利技术进行具体描述。应当理解,下述的各种实施方式只用于举例说明,而非用于限制本专利技术的保护范围。图1是根据本专利技术实施方式的一种消息队列的消息调度方法的流程示意图。参照图1,所述方法包括:10:消息投递处理。具体而言,根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类型对应的消息队列。其中,所述多条消息队列中的各消息队列对应相应的业务类型。在本实施例中,业务类型的划分与本方法实施例所适用的场景相关联。举例而言,当将本专利技术应用于电子商务平台时,根据电商的服务流程,可以将业务类型大体划分为商品浏览业务、下单支付业务和日志处理业务。本发明对在具体场景下业务类型的划分不做具体限制。12:消息调度处理。具体而言,在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队列,然后从所述目标消息队列中调度用于进行后继处理的消息。采用本实施例提供的方法,通过分业务类型的消息投递以及通过消息队列的关键特征值确定从哪个消息队列调度消息,能够综合消息队列的关键特征进行消息调度,实现系统资源(例如,数据处理能力、数据读取能力等)的合理配置,提高系统效率(包括响应时间和吞吐率)并实现业务价值的最大化。可选地,在本实施例的一种实现方式中,所述多条消息队列中各消息队列的关键特征值包括:各消息队列中的消息数量(下文采用n表示)、各消息队列的使用率(下文采用p表示,消息队列的使用率用于表示消息队列的实际忙碌程度,例如假设消息队列长度为100,占用数为50,则使用率为50%)以及预设的各消息队列的权重(下文采用w表示)。其中,预设的各消息队列的权重用于反应各消息队列所对应的业务类型的业务价值,换言之,可以根据各消息队列所对应的业务类型的业务价值为各消息队列设置权重,而业务类型的业务价值可以由相关人员根据经验确定,此处不对其具体值进行限制。进一步可选地,在处理12中通过以下方式确定目标消息队列:首先,根据公式S=w×n×p(即,求三者的乘积)计算各消息队列的运行指标,其中,S表示运行指标;然后,从所述多条消息队列中选取S最高的消息队列作为所述目标消息队列。采用本实现方式所达到的有益效果可以通过与现有技术的对比而变得更加明显。现有技术中为了解决消息队列优先级的问题,必须维护多个队列和线程,不同队列具有不同的优先级,由投递线程根据消息处理情况将消息投递至不同队列。这种方法需要维护多套彼此独立的消息队列,对应用服务器的线程池和应用资源的耗费都成倍增加,并且投递线程需要区分消息的优先级进行投递,缺乏灵活性。而系统耦合性的加剧也不利于业务扩展,各消息队列之间互相独立,存在部分队列空闲或紧张的情况,无法合理分配系统资源。也就是说,现有的消息队列的调度方法在业务优先级处理、系统性能和灵活性等方面存在不可调和的矛盾。而在本实现方式中,首先根据消息的业务类型将消息投递至相应的消息队列,然后从各消息队列的业务价值(通过n反映)、业务量(通过n反应)和系统处理率(通过p反映)三者的角度出发,将多个消息队列的关键特征值提取并加权融合使得各消息队列并不相互独立,之后根据加权融合得到的运行指标判断消息队列的优先级(即,确定优先级最高的为目标消息队列),进而提取消息进行处理。这样的处理方式相对于前述的现有技术能够在兼顾系统效率的同时本文档来自技高网...

【技术保护点】
一种消息队列的消息调度方法,其特征在于,所述方法包括:根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类型对应的消息队列,其中,所述多条消息队列中的各消息队列对应相应的业务类型;在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队列,然后从所述目标消息队列中调度用于进行后继处理的消息。

【技术特征摘要】
1.一种消息队列的消息调度方法,其特征在于,所述方法包括:
根据消息的业务类型将消息投递至多条消息队列中与所述消息的业务类
型对应的消息队列,其中,所述多条消息队列中的各消息队列对应相应的业
务类型;
在调度消息时,根据所述多条消息队列中各消息队列的关键特征值计算
确定所述多条消息队列中的目标消息队列,然后从所述目标消息队列中调度
用于进行后继处理的消息。
2.如权利要求1所述的消息调度方法,其特征在于,所述多条消息队列
中各消息队列的关键特征值包括:
各消息队列中的消息数量、各消息队列的使用率以及预设的各消息队列
的权重。
3.如权利要求2所述的消息调度方法,其特征在于,所述预设的各消息
队列的权重用于反应各消息队列所对应的业务类型的业务价值。
4.如权利要求2所述的消息调度方法,其特征在于,根据所述多条消息
队列中各消息队列的关键特征值计算确定所述多条消息队列中的目标消息队
列包括:
根据S=w×n×p计算各消息队列的运行指标,其中,w表示权重,n表
示消息数量,p表示使用率,S表示运行指标;
从所述多条消息队列中选取S最高的消息队列作为所述目标消息队列。
5.如权利要求1所述的消息调度方法,其特征在于,所述方法还包括:
通过负载均衡将调度的消息发送至业务逻辑线程,由所述业务逻辑线程
执行所述后继处理。
6.一种...

【专利技术属性】
技术研发人员:胡宗维王伟张舜华赵金鑫何小峰包辰明卢颖辉汪楠谢潇宇李响
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:北京;11

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

1