消息处理方法及装置制造方法及图纸

技术编号:22329901 阅读:25 留言:0更新日期:2019-10-19 12:14
本说明书实施例提供一种消息处理方法及装置,在消息处理方法中,监控生产端发送消息的发送速率以及消费端消费消息的消费速率。当发送速率大于消费速率时,对生产端后续发送的新消息,确定新消息的分流概率。按照分流概率随机地将新消息分流至蓄洪队列中。

Message processing method and device

【技术实现步骤摘要】
消息处理方法及装置
本说明书一个或多个实施例涉及计算机
,尤其涉及一种消息处理方法及装置。
技术介绍
消息队列是指用于存储消息的中间件。如,其可以存储生产端向消费者端消费端发送的消息。具体地,生产端可以向消息队列发送消息,消费端可以从消息队列中获取消息,或者说消费端可以消费消息队列中的消息。当生产端发送消息的速率超过消费端消费消息的速率时,消息队列中的消息会产生积压。传统技术中,当消息队列中的消息产生积压时,消息的处理方式有如下两种:优先队列的方式:给消息划分不同的优先级。基于特定规则,让优先级高的消息先被处理。生产端限流的方式:当处理能力不足或者达到预设的阀值时,直接拒绝消息,以此来保证消息不产生积压。因此,需要提供一种准确而有效地处理消息的方案。
技术实现思路
本说明书一个或多个实施例描述了一种消息处理方法及装置,可以准确而有效地对消息进行处理。第一方面,提供了一种消息处理方法,包括:监控生产端发送消息的发送速率以及消费端消费消息的消费速率;所述生产端用于向消息队列发送消息,所述消费端用于消费所述消息队列中的消息;当所述发送速率大于所述消费速率时,对所述生产端后续发送的新消息,确定所述新消息的分流概率;按照所述分流概率随机地将所述新消息分流至蓄洪队列中;所述蓄洪队列用于在所述消息队列的消息积压时分流所述生产端发送的消息。第二方面,提供了一种消息处理装置,包括:监控单元,用于监控生产端发送消息的发送速率以及消费端消费消息的消费速率;所述生产端用于向消息队列发送消息,所述消费端用于消费所述消息队列中的消息;确定单元,用于当所述监控单元监控到所述发送速率大于所述消费速率时,对所述生产端后续发送的新消息,确定所述新消息的分流概率;分流单元,用于按照所述确定单元确定的所述分流概率随机地将所述新消息分流至蓄洪队列中;所述蓄洪队列用于在所述消息队列的消息积压时分流所述生产端发送的消息。本说明书一个或多个实施例提供的消息处理方法及装置,监控生产端发送消息的发送速率以及消费端消费消息的消费速率。当发送速率大于消费速率时,对生产端后续发送的新消息,确定新消息的分流概率。按照分流概率随机地将新消息分流至蓄洪队列中。由此,可以提高消息处理的准确性和有效性。附图说明为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本说明书一个实施例提供的消息处理方法的应用场景示意图;图2为本说明书一个实施例提供的消息处理方法流程图;图3为本说明书另一个实施例提供的消息处理方法流程图;图4为本说明书再一个实施例提供的消息处理方法流程图;图5为本说明书一个实施例提供的消息处理装置示意图。具体实施方式下面结合附图,对本说明书提供的方案进行描述。本说明书一个实施例提供的消息处理方法可以应用于如图1所示的场景中,图1中,消息队列系统(以下简称系统)可以监控生产端发送消息的发送速率和消费端消费消息的消费速率。其至少可以包括两种类型的消息队列:正常的消息队列(也称原队列)和蓄洪队列,其中,蓄洪队列可以采用高可用并能实现持久化存储的分布式缓存队列。具体地,当监控到发送速率大于消费速率(也即消息积压)时,从生产端接收的消息以指定概率(其计算方法后续进行说明)随机地分流至蓄洪队列中。当监控到发送速率小于等于消费速率时,从生产端接收的消息全部进入原队列中。此外,在发送速率小于消费速率时,按照蓄洪队列中的消息对应的入队列时间,对蓄洪队列中的消息进行处理。此处,蓄洪队列中的消息可以具有对应的入队列时间。需要说明的是,生产端发送的消息可以包含消息特征,如,ip1和ip2等。在本说明书中,对包含消息特征的消息的处理方法与不包含消息特征的消息的处理方法可以不同。以下将通过不同的实施例来对包含或者不包含消息特征的消息的处理方法分别进行说明。对不包含消息特征的消息的处理方法可以如图2所示。图2中,该方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,图1中的消息队列系统。如图2所示,所述方法具体可以包括:步骤210,监控生产端发送消息的发送速率以及消费端消费消息的消费速率。在一种实现方式中,生产端发送消息的发送速率的确定方式可以包括两种:固定时长的方式和固定消息个数的方式。固定时长的方式:获取生产端当前时刻之前固定时长内发送的消息的个数。根据消息的个数以及固定时长,确定发送速率。如,假设当前时刻之前1秒钟内发送的请求消息的个数为100个,则发送速率为100req/s,即每秒100个请求消息。固定个数的方式:获取生产端当前时刻之前发送固定个数的消息所需时长。根据固定个数和所需时长,确定发送速率。如,假设当前时刻之前发送100个请求消息所需时长为1s,则发送速率为100req/s。需要说明的是,消费端消费消息的消费速率的确定方法同生产端发送消息的发送速率的确定方法类似,在此不复赘述。步骤220,当发送速率大于消费速率时,根据发送速率和消费速率,计算消息的分流概率。在一种实现方式中,可以根据如下公式来计算消息的分流概率:其中,C为分流概率,p为发送速率,q为消费速率。步骤230,对生产端后续发送的新消息,根据计算的消息的分流概率,确定新消息的分流概率。在一种实现方式中,将计算的消息的分流概率作为生产端后续发送的新消息的分流概率。步骤240,按照确定的分流概率随机地将新消息分流至蓄洪队列中。可以理解的是,未被分流的新消息则进入原队列。由此可以看出,在本实施例中,当原队列的消息积压时,对从当前时刻起生产端发送的每个新消息,以分流概率:(p-q)/p随机进入蓄洪队列。在该种情况下,有(p-q)/p的新消息被蓄洪,处理时间变长,影响到正常功能。但是,任意时刻有q/p的新消息(进入原队列的新消息)完全不受消息积压的影响,可以正常工作。此外,通过该实施例提供的方法,可以使得在不同时间产生的消息,都有同样的几率被处理。总之,图2所提供的方法可以概括如下:当发送速率大于消费速率时,基于使得新消息的发送速率与消费速率相等的思路来计算消息的分流概率,并根据计算的分流概率对新消息进行分流。以上是对不包含消息特征的消息的处理方法,对包含消息特征的消息的处理方法可以如图3所示。图3中,该方法的执行主体可以为具有处理能力的设备:服务器或者系统或者装置,如,图1中的消息队列系统。如图3所示,所述方法具体可以包括:步骤310,监控生产端发送消息的发送速率以及消费端消费消息的消费速率。步骤310同步骤210所述,在此不复赘述。步骤320,当发送速率大于消费速率时,对生产端后续发送的新消息,根据新消息包含的消息特征,确定新消息所归属的类别。如,当新消息包含的消息特征为:ip1时,确定该新消息所归属的类别为第一类别;当新消息包含的消息特征为:ip2时,确定该新消息所归属的类别为第二类别。步骤330,根据消息的类别与分流概率之间的对应关系,确定该类别的新消息对应的分流概率。此处的对应关系中可以包括多个类别,该类别的数目可以与消息特征的种类数相同。在一种具体实现方式中,确定对应关系中的分流概率可以包本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,包括:监控生产端发送消息的发送速率以及消费端消费消息的消费速率;所述生产端用于向消息队列发送消息,所述消费端用于消费所述消息队列中的消息;当所述发送速率大于所述消费速率时,对所述生产端后续发送的新消息,确定所述新消息的分流概率;按照所述分流概率随机地将所述新消息分流至蓄洪队列中;所述蓄洪队列用于在所述消息队列的消息积压时分流所述生产端发送的消息。

【技术特征摘要】
1.一种消息处理方法,其特征在于,包括:监控生产端发送消息的发送速率以及消费端消费消息的消费速率;所述生产端用于向消息队列发送消息,所述消费端用于消费所述消息队列中的消息;当所述发送速率大于所述消费速率时,对所述生产端后续发送的新消息,确定所述新消息的分流概率;按照所述分流概率随机地将所述新消息分流至蓄洪队列中;所述蓄洪队列用于在所述消息队列的消息积压时分流所述生产端发送的消息。2.根据权利要求1所述的方法,其特征在于,在所述确定所述新消息的分流概率之前,还包括:根据所述发送速率和所述消费速率,计算所述消息的分流概率;所述确定所述新消息的分流概率,包括:根据所述消息的分流概率,确定所述新消息的分流概率。3.根据权利要求1所述的方法,其特征在于,所述新消息包含消息特征;所述确定所述新消息的分流概率,包括:根据所述新消息包含的消息特征,确定所述新消息所归属的类别;根据消息的类别与分流概率之间的对应关系,确定所述类别的新消息对应的分流概率。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:确定所述对应关系中的消息的分流概率的步骤,包括:根据所述消息包含的消息特征,对所述消息进行分类,并确定各个类别的消息的发送速率;根据总类别数目以及所述消费速率,确定平均消费速率;根据所述各个类别的消息的发送速率、所述消费速率以及所述平均消费速率,确定所述各个类别的消息对应的分流概率;所述各个类别的消息对应的分流概率即为所述对应关系中的分流概率。5.根据权利要求4所述的方法,其特征在于,所述根据各个类别的消息的发送速率、所述消费速率以及所述平均消费速率,确定所述各个类别的消息对应的分流概率,包括:判断各个类别的消息的发送速率是否均不小于所述平均消费速率;若是,则对每个类别的消息,根据该类别的消息的发送速率以及所述消费速率,确定该类别的消息对应的分流概率;若否,则确定发送速率不小于所述平均消费速率的目标类别的消息,对所述目标类别的消息,根据所述目标类别的消息的发送速率、所述各个类别的消息的发送速率之和以及所述消费速率,确定所述目标类别的消息对应的分流概率;对发送速率小于所述平均消费速率的其它类别的消息,确定所述其它类别的消息对应的分流概率为预设值。6.根据权利要求3所述的方法,其特征在于,所述消息特征用于判断消息是否包含在白名单中;所述白名单中的消息占用所述消费端的固定比例的资源;所述方法还包括:确定所述对应关系中的消息的分流概率的步骤,包括:根据所述消息包含的消息特征,将所述消息划分为两个类别:第一类别和第二类别;所述第一类别的消息包含在所述白名单中;确定两个类别的消息的发送速率;根据所述两个类别的消息的发送速率、所述固定比例以及所述消费速率,确定所述两个类别的消息对应的分流概率;所述两个类别的消息对应的分流概率即为所述对应关系中的分流概率。7.根据权利要求6所述的方法,其特征在于,所述根据所述两个类别的消息的发送速率、所述固定比例以及所述消费速率,确定所述两个类别的消息对应的分流概率,包括:判断所述第一类别的消息的发送速率是否不小于所述固定比例与所述消费速率的乘积且判断所述第二类别的消息的发送速率是否不小于所述消费速率与所述乘积之差;若是,则对每个类别的消息,根据该类别的消息的发送速率、所述固定比例以及所述消费速率,确定该类别的消息对应的分流概率;若否,则判断是否是所述第一类别的消息的发送速率不小于所述固定比例与所述消费速率的乘积;若是,则确定所述第一类别的消息对应的分流概率为预设值;根据所述两个类别的消息的发送速率之和、所述消费速率以及所述第一类别的消息的发送速率,确定所述第二类别的消息对应的分流概率;若否,则确定所述第一类别的消息对应的分流概率为预设值;根据所述两个类别的消息的发送速率之和、所述消费速率以及所述第二类别的消息的发送速率,确定所述第二类别的消息对应的分流概率。8.根据权利要求3-7任一项所述的方法,其特征在于,所述蓄洪队列中的消息具有对应的入队列时间,还包括:当所述发送速率小于所述消费速率时,按照所述蓄洪队列中的消息对应的入队列时间,对所述蓄洪队列中的消息进行...

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

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

1