[发明专利]一种消息处理方法及电子设备在审
申请号: | 201710520428.2 | 申请日: | 2017-06-30 |
公开(公告)号: | CN107391275A | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 李雪强 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京派特恩知识产权代理有限公司11270 | 代理人: | 蒋雅洁,张颖玲 |
地址: | 100085*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 消息 处理 方法 电子设备 | ||
技术领域
本发明涉及消息队列技术领域,尤其涉及一种消息处理方法及电子设备。
背景技术
在开放堆(openstack)中,组件内的消息都是通过消息队列(RabbitMQ)的生产者/消费者模式进行通信。对于消费者而言,主要有两种启动方式:
第一种启动方式:如图1所示,启动的时候直接启动n个进程,每个进程对应一个消费者。
第二种启动方式:如图2所示,启动的时候启动一个主进程,如果有消息需要消费者处理,则主进程衍生(fork)一个子进程给消费者进行消息的处理,当消费者处理消息完毕后将相应的子进程关闭。
上述方案至少具有如下缺点:
第一种启动方式:在系统并发小的时候会造成资源浪费;在系统并发大的时候,由于进程数量已经固化,可能造成消息未及时处理,这种情况在大规模部署的情况下尤为明显。
第二种启动方式:一旦主进程异常中止或者僵死,子进程就会受到影响,从而造成消息队列中的消息积压,这种情况在分布式环境下尤其明显。此外,这种方式大大的增加了系统的开销。
发明内容
为解决上述技术问题,本发明实施例提供了一种消息处理方法及电子设备。
本发明实施例提供的消息处理方法,包括:
建立第一对象与消息队列之间的映射关系,其中,在多个第一设备中分别设置有一个以上所述第一对象,所述第一对象能够处理所述消息队列中的消息;
当接收到第二对象发送的消息时,根据预设策略从多个消息队列中选择出与所述消息相匹配的消息队列,将所述消息存入与其相匹配的消息队列中;其中,在多个第二设备中分别设置有一个以上所述第二对象,所述第二对象能够生产所述消息队列中的消息;
基于所述第一对象与消息队列之间的映射关系,将各个消息队列中的消息发送至对应的第一对象进行处理。
本发明实施例中,所述方法还包括:
获取所述消息队列中的如下参数:消息推入速率、消息推出速率、消息积压量;
根据所述消息队列中的参数,判断是否需要调整所述第一对象的数量和/或所述消息队列的数量;
如果需要调整所述第一对象的数量和/或所述消息队列的数量,则根据所述消息队列中的参数调整所述第一对象的数量和/或所述消息队列的数量。
本发明实施例中,所述方法还包括:
当所述第一对象的数量和/或所述消息队列的数量调整时,基于调整后的第一对象的数量和/或消息队列的数量,动态更新所述第一对象与消息队列之间的映射关系。
本发明实施例中,所述根据所述消息队列中的参数调整所述第一对象的数量和/或所述消息队列的数量,包括:
判断所述消息队列中的消息积压量是否大于等于第一预设阈值;
如果所述消息队列中的消息积压量大于等于第一预设阈值,则将所述第一对象的数量和/或所述消息队列的数量调至大于等于第一预设值;
如果所述消息队列中的消息积压量小于等于第二预设阈值,则将所述第一对象的数量和/或所述消息队列的数量调至小于等于第二预设值。
本发明实施例中,所述根据所述消息队列中的参数调整所述第一对象的数量和/或所述消息队列的数量,包括:
比较所述消息推入速率和所述消息推出速率;
如果所述消息推入速率大于所述消息推出速率,则将所述第一对象的数量和/或所述消息队列的数量调至大于等于第三预设值;
如果所述消息推入速率小于所述消息推出速率,则将所述第一对象的数量和/或所述消息队列的数量调至小于等于第四预设值。
本发明实施例提供的电子设备,包括:处理器、存储器,其中,
所述存储器,用于存储消息队列;
所述处理器,用于建立第一对象与消息队列之间的映射关系,其中,在多个第一设备中分别设置有一个以上所述第一对象,所述第一对象能够处理所述消息队列中的消息;当接收到第二对象发送的消息时,根据预设策略从多个消息队列中选择出与所述消息相匹配的消息队列,将所述消息存入与其相匹配的消息队列中;其中,在多个第二设备中分别设置有一个以上所述第二对象,所述第二对象能够生产所述消息队列中的消息;基于所述第一对象与消息队列之间的映射关系,将各个消息队列中的消息发送至对应的第一对象进行处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710520428.2/2.html,转载请声明来源钻瓜专利网。