CN106708607A - 消息队列的拥塞控制方法和装置 - Google Patents

消息队列的拥塞控制方法和装置 Download PDF

Info

Publication number
CN106708607A
CN106708607A CN201510770687.1A CN201510770687A CN106708607A CN 106708607 A CN106708607 A CN 106708607A CN 201510770687 A CN201510770687 A CN 201510770687A CN 106708607 A CN106708607 A CN 106708607A
Authority
CN
China
Prior art keywords
message queue
queue
message
priority
target message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510770687.1A
Other languages
English (en)
Other versions
CN106708607B (zh
Inventor
戴潇桐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510770687.1A priority Critical patent/CN106708607B/zh
Publication of CN106708607A publication Critical patent/CN106708607A/zh
Application granted granted Critical
Publication of CN106708607B publication Critical patent/CN106708607B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开一种消息队列的拥塞控制方法和装置,在接收待发送消息的目标消息队列发生拥塞时,不会主动丢弃该待发送消息,而是将该待发送消息转移至优先级低的其他消息队列,通过占用优先级低的消息队列来保证待发送消息的传输,实现对目标消息队列拥塞进行控制的同时,还能够保证待发送消息的传输率。

Description

消息队列的拥塞控制方法和装置
技术领域
本申请涉及消息传输技术领域,特别涉及一种消息队列的拥塞控制方法和装置。
背景技术
随着互联网时代的到来,通过消息队列来传输的消息越来越多,消息队列发生拥塞的概率也不断增加。
现有技术中,一般通过丢尾方式来控制消息队列的拥塞,其包括如下步骤:
S1、在待发送消息存至消息队列时,获取该消息队列的长度;
S2、判断该消息队列的长度是否大于阈值,若是,确定该消息队列发生拥塞,进而执行步骤S3;
S3、将前述存至消息队列内的待发送消息丢弃,以降低消息队列中消息数量,实现减轻该消息队列的拥塞。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:
由于丢尾算法仅依靠丢弃队列尾部的消息来减轻该消息队列的拥塞,那么可能存在某一段时间集中进入消息队列的都是较为优先级较高的重要消息,若发生拥塞,这些优先级较高的重要消息容易被大量丢弃,导致消息传输率降低。
发明内容
本申请实施例的目的是提供一种消息队列的拥塞控制方法和装置,能在控制消息队列的拥塞时保证消息的传输率。
为解决上述技术问题,本申请实施例提供一种消息队列的拥塞控制方法是这样实现的:
判断用于接收待发送消息的目标消息队列是否发生拥塞,所述目标消息队列位于包括若干具有优先级的消息队列的队列系统内;
在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,将所述待发送消息存至所述比目标消息队列的优先级低的消息队列;
在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列。
为解决上述技术问题,本申请实施例提供一种消息队列的拥塞控制装置是这样实现的:
拥塞判断模块,用于判断用于接收待发送消息的目标消息队列是否发生拥塞,所述目标消息队列位于包括若干具有优先级的消息队列的队列系统内;
控制执行模块,用于:在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,将所述待发送消息存至所述比目标消息队列的优先级低的消息队列;在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列。
由以上本申请实施例提供的技术方案可见,本申请实施例所提供的消息队列的拥塞控制方法和装置,在接收待发送消息的目标消息队列发生拥塞时,不会主动丢弃该待发送消息,而是将该待发送消息转移至优先级低的其他消息队列,通过占用优先级更低的消息队列来保证待发送消息的传输,实现对目标消息队列拥塞进行控制的同时,还能够保证待发送消息的传输率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中消息队列的拥塞控制方法适用的消息传输系统的架构示意图。
图2为本申请第一实施例中消息队列的拥塞控制方法的过程;
图3为本申请第二实施例中消息队列的拥塞控制方法的过程;
图4为本申请第三实施例中消息队列的拥塞控制方法的过程;
图5为本申请实施例中消息队列的拥塞控制装置的模块图。
具体实施方式
本申请实施例提供一种消息队列的拥塞控制方法和装置,用于解决现有技术中对消息队列进行拥塞控制时可能降低消息传输率的问题。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
图1为本申请实施例中消息队列的拥塞控制方法适用的消息传输系统的架构示意图。
该消息传输系统中,第一客户端100所发出消息借助网络200进入队列系统300,通过队列系统中转保存,并按照消息接收方依次发送至第二客户端400。
当然,在消息传输方向改变时,第一客户端100也会从第二客户端400接收消息,消息传输系统的架构也一致。
第一客户端100和第二客户端400的数量均可以不止一个。第一客户端100和第二客户端400可以是包括能够经由网络200发出并接收数据的通信模块的装置。例如,每个用户终端100所基于的网络装置都可以包括服务器、台式计算机、膝上型计算机、平板计算机、智能手机、手持式计算机、个人数字助理(“PDA”),或者其它任何的有线或无线处理器驱动装置。
网络200都可以包括局域网(“LAN”)、广域网(“WAN”)、内部网、互联网、移动电话网络、虚拟专用网(VPN)、蜂窝式或其它移动通信网络、蓝牙、NFC或其任何组合。
消息可以是存在于基于计算机的环境中的文字、图像、音频、视频或任何其它形式的消息,例如可以是短信、邮件等。消息具有优先级,例如短信就包括了支付确认短信、登录验证短信和营销通知短信等,显然支付确认短信、登录验证短信和营销通知短信的优先级依次降低,对于用户的重要性也依次降低。
消息都具有优先级,优先级有级别高低之分。不同级别的优先级表明相应的消息具有不同的优先级。
消息的优先级与相应的消息的类型被关联后存入一个预设优先级集合。以消息是短信为例,可以将支付确认短信、登录验证短信和营销通知短信的优先级设定为级别依次降低的第一级别、第二级别及第三级别,再将这三种级别的优先级和相应消息类型关联,一并存入预设优先级集合内。
当然,一个级别的优先级可以与多种类型的消息关联,仅需保证每个消息有且仅有一个级别的优先级即可。
队列系统300可以位于网络200上的网关内,队列系统300内包括多个并列的消息队列,这些消息队列也具有优先级。消息队列的优先级也可以根据预设优先级集合来设定,使得各个消息队列的优先级相异。
具体的,队列系统300内消息队列的数量与预设优先级集合内优先级的数量一致,例如预设优先级集合内包括级别依次降低的第一级别、第二级别及第三级别,那么消息队列的数量也可以设置为三个,并且这些消息队列的优先级也设置为第一级别、第二级别及第三级别,以用于分别存放对应级别的消息。
本申请实施例中,队列系统300在发现其自身发生拥塞时,能够自适应控制拥塞,以保证消息的传输率。
图2为本申请第一实施例中消息队列的拥塞控制方法的过程,该消息队列的拥塞控制方法的执行主体可以是前述队列系统300,其具体包括如下步骤。
S20:判断用于接收待发送消息的目标消息队列是否发生拥塞,若否,执行步骤S40,若是,执行步骤S60。
待发送消息用于泛指从第一客户端100或第二客户端400进入队列系统300内的消息,其可以是短信、邮件等,在此不做赘述。
待发送消息具有优先级,队列系统300包括若干具有相异的优先级的消息队列,待发送消息的优先级和消息队列的优先级均根据前述预设优先级集合得到,具体可参图1描述,在此不做赘述。
其中,待发送消息被通过如下过程存至队列系统300中消息队列内,以便执行本申请实施例提供的消息队列的拥塞控制方法。
第一客户端100或第二客户端400生成待发送消息后,即可根据该待发送消息的类型查询预设优先级集合确定该待发送消息相应的优先级。后续,将具有优先级的待发送消息发送至队列系统300。
队列系统300和待发送消息的优先级是通过同一个预设优先级集合得到,根据待发送消息的优先级,查询队列系统300内各个消息队列的优先级,进而确定与待发送消息具有相同的优先级的消息队列并作为目标消息队列,将待发送消息存至与其优先级相同的目标消息队列的队尾,实现待发送消息的优先级和用于接收该待发送消息的目标消息队列的优先级相同。当然,在本申请的其他实施例中,待发送消息还可以与其目标消息队列的优先级不同,在此不做赘述。
本申请实施例中,步骤S20具体包括:
判断目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
在用于接收待发送消息的目标消息队列的长度大于预设上限值,确定消息队列发生拥塞;
在用于接收待发送消息的目标消息队列的长度小于预设下限值,确定消息队列未发生拥塞;
在用于接收待发送消息的目标消息队列的长度在预设下限值和预设上限值之间,以预设概率确定消息队列发生拥塞或未发生拥塞。
由于消息队列是否发生拥塞,与该消息队列内堆积的消息数量密切相关,该消息队列内堆积的消息数量即为该消息队列的长度,通过对消息队列的长度进行判别,即可确定该消息队列是否发生拥塞。
本申请实施例中,对消息队列的长度设定预设下限值和预设上限值,将消息队列的长度可在区间分为3个范围。在长度小于预设下限值时,表明消息队列内消息数量较少,即消息队列的消息入口速率和出口速率合适,则判定该消息队列不会发生拥塞。在长度在预设下限值和预设上限值之间时,表明消息队列内消息数量已经较多,即消息队列的消息入口速率和出口速率有略微的失衡,则以预设概率判定该消息队列发生拥塞还是未发生拥塞,具体的,可以基于预设概率以机器随机选择的方式判定该消息队列发生拥塞还是未发生拥塞。在长度大于预设上限值之间时,表明消息队列内消息数量已经非常多,即消息队列的消息入口速率和出口速率已经完全失衡,则判定该消息队列已经发生拥塞。
预设下限值和预设上限值可以根据目标消息队列的优先级来设定。例如,优先级是第一优先级的消息队列的预设下限值和预设上限值均可以比第二优先级的消息队列的预设下限值和预设上限值更大,使得第一优先级的消息队列比第二优先级的消息队列被判定拥塞的概率更低。
预设概率也可以根据目标消息队列的长度与预设上限值的差值来设定。在消息队列的长度越靠近预设上限值时,表明该消息队列越可能发生拥塞,可以适应性提高预设概率,即消息队列的长度越长,其相应的预设概率也越大。例如,设定预设概率的范围从0至100%,将预设概率与消息队列的长度与预设上限值或预设下限值的差值设定为线性关联。
值得注意的是,由于每个消息队列的预设上限值和预设下限值是确定的,用于接收待发送消息的目标消息队列的长度与预设上限值的差值和用于接收待发送消息的目标消息队列的长度与预设下限值的差值是对应的。则根据用于接收待发送消息的目标消息队列的长度与预设上限值的差值,确定与差值相关联的预设概率也可以扩展成包括:根据用于接收待发送消息的目标消息队列的长度与预设下限值的差值,确定与差值相关联的预设概率。
S40:将所述待发送消息存至所述目标消息队列。
由于目标消息队列并未发生拥塞,可以直接将待发送消息存至目标消息队列内以备后续传输。
S60:在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列。
例如,目标消息队列的优先级为第一级别,则将在队列系统内确定第二级别或更低级别的消息队列。
本申请实施例中,可以在队列系统内确定一个仅比目标消息队列的优先级低一级的消息队列,或者还可以在队列系统内确定一个比目标消息队列的优先级低且队列长度最短的消息队列,甚至说,还可以在队列系统内随机选取一个比目标消息队列低的任意一个消息队列。
S80:将所述待发送消息存至所述比目标消息队列的优先级低的消息队列。
本申请实施例所提供的消息队列的拥塞控制方法,本申请实施例所提供的消息队列的拥塞控制方法和装置,在接收待发送消息的目标消息队列发生拥塞时,不会主动丢弃该待发送消息,而是将该待发送消息转移至优先级低的其他消息队列,通过占用优先级更低的消息队列来保证待发送消息的传输,实现对目标消息队列拥塞进行控制的同时,还能够保证待发送消息的传输率。
本申请实施例中,所述队列系统内消息队列的发送带宽被配置为与该消息队列的优先级正相关。
仍以队列系统300内包括3个级别的消息队列为例,则可以使得优先级为最高级别的消息队列拥有最大的发送带宽,随着优先级级别的降低,适应性降低消息队列的带宽,以保证高级别的消息队列能占用更多的带宽,以尽可能多的传输高级别的消息。
值得注意的是,消息队列的发送带宽和其队列的长度与出口速率均正相关。发送带宽大的消息队列相对于发送带宽小的消息队列,具有更大的队列长度和出口速率,使得高级别的消息队列内的消息具有更大的传输优势。
本申请实施例中,在执行步骤S80的过程中若遇到待发送消息无法存至比目标消息队列的优先级低的消息队列时,可以直接返回消息入队失败信号,便于网络服务器或消息队列拥塞控制装置明确无法完成拥塞控制。
参图3所示,本申请第二实施例中,与前述第一实施例的区别在于,步骤S60之前还包括如下步骤:
S50:判断目标消息队列的优先级是否为最低级别,若是,执行步骤S60,若否,执行步骤S90。
S70、丢弃待发送消息或将目标消息队列内消息存入硬盘。
通过执行S50来明确目标消息队列的优先级是否为最低级别,在目标消息队列的优先级不是最低级别时,可以通过执行步骤S60,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列;反之,在目标消息队列的优先级是最低级别时,队列系统内没有比目标消息队列的优先级还低的消息队列,通过执行步骤S70,将待发送消息丢弃,或将目标消息队列内消息存入硬盘以防止这些消息丢失。
参图4所示,本申请第三实施例中,与前述第二实施例的区别在于,取消步骤S80,且步骤S60之后还包括如下步骤:
S70:将所述目标消息队列更新为所述比目标消息队列的优先级低的消息队列,并返回步骤S20。
通过对目标消息队列进行更新,并返回判断新的目标消息队列是否拥塞,并执行后续步骤。使得待发送消息能够被存至比优先级低的、并且不拥塞的消息队列内,提高了待发送消息的传输率。
接下来,将基于上述披露的方法实施例的技术方案,对本申请的装置实施例进行描述,由于消息队列的拥塞控制装置是基于上述消息队列的拥塞控制方法的原理产生的,故该装置的具体技术细节可以部分或全部参照上述方法的内容。
参图5所示,本申请实施例中,消息队列的拥塞控制装置,包括:
拥塞判断模块20,用于判断用于接收待发送消息的目标消息队列是否发生拥塞,所述目标消息队列位于包括若干具有优先级的消息队列的队列系统内;
控制执行模块40,用于:在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,将所述待发送消息存至所述比目标消息队列的优先级低的消息队列;在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列。
本申请实施例中,所述待发送消息具有优先级,所述待发送消息和目标消息队列的优先级相同。
本申请实施例中,所述拥塞判断模块20,具体用于:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
所述控制执行模块40,具体用于:
在所述目标消息队列的长度大于预设上限值,或,在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列。
本申请实施例中,所述拥塞判断模块20,具体用于:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
所述控制执行模块40,具体用于:
在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列未发生拥塞时,或,在所述目标消息队列的长度小于预设下限值时,将所述待发送消息存至所述目标消息队列。
本申请实施例中,所述预设下限值和预设上限值根据用于接收待发送消息的目标消息队列的优先级确定,所述预设概率根据用于接收待发送消息的目标消息队列的长度与预设上限值的差值确定。
本申请实施例中,所述装置还包括优先级判断模块,用于:
在判断出所述目标消息队列发生拥塞后,判断所述目标消息队列的优先级是否为最低级别;
所述控制执行模块40,还用于:
在所述目标消息队列的优先级不是最低级别时,执行所述在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列的步骤;
在所述目标消息队列的优先级是最低级别时,丢弃所述待发送消息或将所述目标消息队列内消息存入硬盘。
本申请实施例中,所述装置还包括目标消息队列更新模块,用于:
在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列之后,将所述目标消息队列更新为所述比目标消息队列的优先级低的消息队列,并通过所述拥塞判断模块所述判断用于接收待发送消息的目标消息队列是否发生拥塞。
本申请实施例中,所述控制执行模块40,具体用于:
将所述待发送消息存至所述队列系统内仅比目标消息队列的优先级低一级的消息队列。
本申请实施例中,所述控制执行模块40,具体用于:
将所述待发送消息存至所述队列系统内比目标消息队列的优先级低的、且队列长度最短的消息队列。
本申请实施例中,所述队列系统内消息队列的发送带宽被配置为与该消息队列的优先级正相关。
本申请实施例所提供的消息队列的拥塞控制装置,在接收待发送消息的目标消息队列发生拥塞时,不会主动丢弃该待发送消息,而是将该待发送消息转移至优先级低的其他消息队列,通过占用优先级更低的消息队列来保证待发送消息的传输,实现对目标消息队列拥塞进行控制的同时,还能够保证待发送消息的传输率。
之前对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片2。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、MicrochipPIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

1.一种消息队列的拥塞控制方法,其特征在于,包括:
判断用于接收待发送消息的目标消息队列是否发生拥塞,所述目标消息队列位于包括若干具有优先级的消息队列的队列系统内;
在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,将所述待发送消息存至所述比目标消息队列的优先级低的消息队列;
在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列。
2.如权利要求1所述的方法,其特征在于,所述待发送消息具有优先级,所述待发送消息和目标消息队列的优先级相同。
3.如权利要求1所述的方法,其特征在于,所述判断用于接收待发送消息的目标消息队列是否发生拥塞,具体包括:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
则在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,具体包括:
在所述目标消息队列的长度大于预设上限值,或,在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列。
4.如权利要求1所述的方法,其特征在于,所述判断用于接收待发送消息的目标消息队列是否发生拥塞,具体包括:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
则在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列,具体包括:
在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列未发生拥塞时,或,在所述目标消息队列的长度小于预设下限值时,将所述待发送消息存至所述目标消息队列。
5.如权利要求3或4所述的方法,其特征在于,所述预设下限值和预设上限值根据用于接收待发送消息的目标消息队列的优先级确定,所述预设概率根据用于接收待发送消息的目标消息队列的长度与预设上限值的差值确定。
6.如权利要求1所述的方法,其特征在于,在判断出所述目标消息队列发生拥塞后,所述方法还包括:
判断所述目标消息队列的优先级是否为最低级别;
在所述目标消息队列的优先级不是最低级别时,执行所述在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列的步骤;
在所述目标消息队列的优先级是最低级别时,丢弃所述待发送消息或将所述目标消息队列内消息存入硬盘。
7.如权利要求1所述的方法,其特征在于,所述在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列之后,所述方法还包括:
将所述目标消息队列更新为所述比目标消息队列的优先级低的消息队列,并返回所述判断用于接收待发送消息的目标消息队列是否发生拥塞的步骤。
8.如权利要求1所述的方法,其特征在于,所述将所述待发送消息存至所述队列系统内比所述目标消息队列的优先级低的消息队列,具体包括:
将所述待发送消息存至所述队列系统内仅比目标消息队列的优先级低一级的消息队列。
9.如权利要求1所述的方法,其特征在于,所述将所述待发送消息存至所述队列系统内比所述目标消息队列的优先级低的消息队列,具体包括:
将所述待发送消息存至所述队列系统内比目标消息队列的优先级低的、且队列长度最短的消息队列。
10.如权利要求1所述的方法,其特征在于,所述队列系统内消息队列的发送带宽被配置为与该消息队列的优先级正相关。
11.一种消息队列的拥塞控制装置,其特征在于,包括:
拥塞判断模块,用于判断用于接收待发送消息的目标消息队列是否发生拥塞,所述目标消息队列位于包括若干具有优先级的消息队列的队列系统内;
控制执行模块,用于:在所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列,将所述待发送消息存至所述比目标消息队列的优先级低的消息队列;在所述目标消息队列未发生拥塞时,将所述待发送消息存至所述目标消息队列。
12.如权利要求11所述的装置,其特征在于,所述待发送消息具有优先级,所述待发送消息和目标消息队列的优先级相同。
13.如权利要求11所述的装置,其特征在于,所述拥塞判断模块,具体用于:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
所述控制执行模块,具体用于:
在所述目标消息队列的长度大于预设上限值,或,在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列发生拥塞时,在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列。
14.如权利要求11所述的装置,其特征在于,所述拥塞判断模块,具体用于:
判断用于接收待发送消息的目标消息队列的长度是大于预设上限值、小于预设下限值还是在预设上限值和预设下限值之间;
所述控制执行模块,具体用于:
在所述目标消息队列的长度在预设上限值和预设下限值之间并以预设概率确定所述目标消息队列未发生拥塞时,或,在所述目标消息队列的长度小于预设下限值时,将所述待发送消息存至所述目标消息队列。
15.如权利要求13或14所述的装置,其特征在于,所述预设下限值和预设上限值根据用于接收待发送消息的目标消息队列的优先级确定,所述预设概率根据用于接收待发送消息的目标消息队列的长度与预设上限值的差值确定。
16.如权利要求11所述的装置,其特征在于,所述装置还包括优先级判断模块,用于:
在判断出所述目标消息队列发生拥塞后,判断所述目标消息队列的优先级是否为最低级别;
所述控制执行模块,还用于:
在所述目标消息队列的优先级不是最低级别时,执行所述在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列的步骤;
在所述目标消息队列的优先级是最低级别时,丢弃所述待发送消息或将所述目标消息队列内消息存入硬盘。
17.如权利要求11所述的装置,其特征在于,所述装置还包括目标消息队列更新模块,用于:
在所述队列系统内确定一个比所述目标消息队列的优先级低的消息队列之后,将所述目标消息队列更新为所述比目标消息队列的优先级低的消息队列,并通过所述拥塞判断模块所述判断用于接收待发送消息的目标消息队列是否发生拥塞的步骤。
18.如权利要求11所述的装置,其特征在于,所述控制执行模块,具体用于:
将所述待发送消息存至所述队列系统内仅比目标消息队列的优先级低一级的消息队列。
19.如权利要求11所述的装置,其特征在于,所述控制执行模块,具体用于:
将所述待发送消息存至所述队列系统内比目标消息队列的优先级低的、且队列长度最短的消息队列。
20.如权利要求11所述的装置,其特征在于,所述队列系统内消息队列的发送带宽被配置为与该消息队列的优先级正相关。
CN201510770687.1A 2015-11-12 2015-11-12 消息队列的拥塞控制方法和装置 Active CN106708607B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510770687.1A CN106708607B (zh) 2015-11-12 2015-11-12 消息队列的拥塞控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510770687.1A CN106708607B (zh) 2015-11-12 2015-11-12 消息队列的拥塞控制方法和装置

Publications (2)

Publication Number Publication Date
CN106708607A true CN106708607A (zh) 2017-05-24
CN106708607B CN106708607B (zh) 2020-12-22

Family

ID=58930014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510770687.1A Active CN106708607B (zh) 2015-11-12 2015-11-12 消息队列的拥塞控制方法和装置

Country Status (1)

Country Link
CN (1) CN106708607B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170545A (zh) * 2018-01-08 2018-06-15 北京奇艺世纪科技有限公司 一种基于消息中间件的消息传输方法和装置
CN109240836A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种用于配置消息队列的消息的方法和装置
CN109347757A (zh) * 2018-11-09 2019-02-15 锐捷网络股份有限公司 消息拥塞控制方法、系统、设备及存储介质
CN110097393A (zh) * 2019-03-28 2019-08-06 苏州德沃雄氏信息科技有限公司 一种基于saas服务的云收银零售管理方法及管理系统
CN110278162A (zh) * 2019-05-10 2019-09-24 浙江吉利控股集团有限公司 一种数据传输方法及装置
CN110661668A (zh) * 2019-09-29 2020-01-07 深圳前海微众银行股份有限公司 一种消息发送管理方法及装置
CN110708253A (zh) * 2018-07-09 2020-01-17 华为技术有限公司 一种报文控制方法、流表更新方法和节点设备
CN110727507A (zh) * 2019-10-21 2020-01-24 广州欢聊网络科技有限公司 一种消息的处理方法、装置、计算机设备和存储介质
CN110888770A (zh) * 2018-09-10 2020-03-17 百度在线网络技术(北京)有限公司 用于发送信息的方法和装置
CN111245745A (zh) * 2020-01-07 2020-06-05 腾讯科技(深圳)有限公司 消息发送方法、装置、节点设备及存储介质
CN111404838A (zh) * 2020-03-17 2020-07-10 上海云励科技有限公司 消息处理方法、装置及设备
CN111858021A (zh) * 2019-08-26 2020-10-30 马上消费金融股份有限公司 交易渠道选择方法、线上交易方法以及相关装置
CN111953506A (zh) * 2019-05-15 2020-11-17 北京沃东天骏信息技术有限公司 消息处理方法和处理系统
CN113362520A (zh) * 2021-06-07 2021-09-07 苏州卡创信息科技有限公司 智能排队方法、系统及其应用平台
CN114885018A (zh) * 2022-06-22 2022-08-09 中国平安财产保险股份有限公司 基于双队列的消息推送方法、装置、设备及存储介质
CN114980013A (zh) * 2021-07-23 2022-08-30 长城汽车股份有限公司 基于蓝牙模块的数据通道管理方法、装置、电子设备及车辆
CN115277848A (zh) * 2022-07-29 2022-11-01 中国银行股份有限公司 基于消息队列的消息处理方法和装置
CN115550280A (zh) * 2022-11-24 2022-12-30 云账户技术(天津)有限公司 多级消息队列实现方法、系统、电子设备和可读存储介质
CN112449228B (zh) * 2019-08-30 2024-05-31 青岛海信宽带多媒体技术有限公司 一种播放器与页面的状态同步的方法及设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828653A (en) * 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US6091709A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Quality of service management for packet switched networks
CN1336056A (zh) * 1999-10-27 2002-02-13 三星电子株式会社 在atm交换机中用于提供可确保的帧速率业务的装置和方法
US20070268823A1 (en) * 2004-08-30 2007-11-22 Ken Madison Device and method for managing oversubscription in a network
CN101272349A (zh) * 2008-05-06 2008-09-24 北京星网锐捷网络技术有限公司 一种质量服务的优先级模拟队列控制方法及装置
CN101557340A (zh) * 2009-05-07 2009-10-14 中兴通讯股份有限公司 一种数据网络中实现多级队列调度的方法及装置
CN101656674A (zh) * 2009-09-23 2010-02-24 中国人民解放军信息工程大学 拥塞控制方法及网络节点
CN102480471A (zh) * 2010-11-24 2012-05-30 杭州华三通信技术有限公司 实现监控RRPP环中QoS处理的方法和网络节点
CN102752192A (zh) * 2012-04-27 2012-10-24 浙江工商大学 基于SCTP的ForCES传输映射层的带宽分配方法
CN103220232A (zh) * 2012-01-19 2013-07-24 北京千橡网景科技发展有限公司 数据拥塞控制方法和设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828653A (en) * 1996-04-26 1998-10-27 Cascade Communications Corp. Quality of service priority subclasses
US6091709A (en) * 1997-11-25 2000-07-18 International Business Machines Corporation Quality of service management for packet switched networks
CN1336056A (zh) * 1999-10-27 2002-02-13 三星电子株式会社 在atm交换机中用于提供可确保的帧速率业务的装置和方法
US20070268823A1 (en) * 2004-08-30 2007-11-22 Ken Madison Device and method for managing oversubscription in a network
CN101272349A (zh) * 2008-05-06 2008-09-24 北京星网锐捷网络技术有限公司 一种质量服务的优先级模拟队列控制方法及装置
CN101557340A (zh) * 2009-05-07 2009-10-14 中兴通讯股份有限公司 一种数据网络中实现多级队列调度的方法及装置
CN101656674A (zh) * 2009-09-23 2010-02-24 中国人民解放军信息工程大学 拥塞控制方法及网络节点
CN102480471A (zh) * 2010-11-24 2012-05-30 杭州华三通信技术有限公司 实现监控RRPP环中QoS处理的方法和网络节点
CN103220232A (zh) * 2012-01-19 2013-07-24 北京千橡网景科技发展有限公司 数据拥塞控制方法和设备
CN102752192A (zh) * 2012-04-27 2012-10-24 浙江工商大学 基于SCTP的ForCES传输映射层的带宽分配方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SALLY FLOYD,VAN JACOBSON: "Random Early Detection Gateways for Congestion Avoidance", 《1993 IEEE/ACM TRANSACTIONS ON NETWORKING》 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170545A (zh) * 2018-01-08 2018-06-15 北京奇艺世纪科技有限公司 一种基于消息中间件的消息传输方法和装置
CN110708253A (zh) * 2018-07-09 2020-01-17 华为技术有限公司 一种报文控制方法、流表更新方法和节点设备
US11516145B2 (en) 2018-07-09 2022-11-29 Huawei Technologies Co., Ltd. Packet control method, flow table update method, and node device
CN109240836B (zh) * 2018-09-06 2020-10-30 苏州浪潮智能科技有限公司 一种用于配置消息队列的消息的方法和装置
CN109240836A (zh) * 2018-09-06 2019-01-18 郑州云海信息技术有限公司 一种用于配置消息队列的消息的方法和装置
CN110888770A (zh) * 2018-09-10 2020-03-17 百度在线网络技术(北京)有限公司 用于发送信息的方法和装置
CN109347757A (zh) * 2018-11-09 2019-02-15 锐捷网络股份有限公司 消息拥塞控制方法、系统、设备及存储介质
CN109347757B (zh) * 2018-11-09 2022-12-09 锐捷网络股份有限公司 消息拥塞控制方法、系统、设备及存储介质
CN110097393A (zh) * 2019-03-28 2019-08-06 苏州德沃雄氏信息科技有限公司 一种基于saas服务的云收银零售管理方法及管理系统
CN110278162A (zh) * 2019-05-10 2019-09-24 浙江吉利控股集团有限公司 一种数据传输方法及装置
CN111953506A (zh) * 2019-05-15 2020-11-17 北京沃东天骏信息技术有限公司 消息处理方法和处理系统
CN111858021B (zh) * 2019-08-26 2021-09-03 马上消费金融股份有限公司 交易渠道选择方法、线上交易方法以及相关装置
CN111858021A (zh) * 2019-08-26 2020-10-30 马上消费金融股份有限公司 交易渠道选择方法、线上交易方法以及相关装置
CN112449228B (zh) * 2019-08-30 2024-05-31 青岛海信宽带多媒体技术有限公司 一种播放器与页面的状态同步的方法及设备
CN110661668B (zh) * 2019-09-29 2023-05-16 深圳前海微众银行股份有限公司 一种消息发送管理方法及装置
CN110661668A (zh) * 2019-09-29 2020-01-07 深圳前海微众银行股份有限公司 一种消息发送管理方法及装置
CN110727507A (zh) * 2019-10-21 2020-01-24 广州欢聊网络科技有限公司 一种消息的处理方法、装置、计算机设备和存储介质
CN111245745A (zh) * 2020-01-07 2020-06-05 腾讯科技(深圳)有限公司 消息发送方法、装置、节点设备及存储介质
CN111404838A (zh) * 2020-03-17 2020-07-10 上海云励科技有限公司 消息处理方法、装置及设备
CN113362520A (zh) * 2021-06-07 2021-09-07 苏州卡创信息科技有限公司 智能排队方法、系统及其应用平台
CN114980013A (zh) * 2021-07-23 2022-08-30 长城汽车股份有限公司 基于蓝牙模块的数据通道管理方法、装置、电子设备及车辆
CN114885018A (zh) * 2022-06-22 2022-08-09 中国平安财产保险股份有限公司 基于双队列的消息推送方法、装置、设备及存储介质
CN114885018B (zh) * 2022-06-22 2023-08-29 中国平安财产保险股份有限公司 基于双队列的消息推送方法、装置、设备及存储介质
CN115277848A (zh) * 2022-07-29 2022-11-01 中国银行股份有限公司 基于消息队列的消息处理方法和装置
CN115550280B (zh) * 2022-11-24 2023-03-31 云账户技术(天津)有限公司 多级消息队列实现方法、系统、电子设备和可读存储介质
CN115550280A (zh) * 2022-11-24 2022-12-30 云账户技术(天津)有限公司 多级消息队列实现方法、系统、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN106708607B (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
CN106708607A (zh) 消息队列的拥塞控制方法和装置
KR102419114B1 (ko) 가상 현실(vr) 콘텐츠를 전송하기 위한 방법과 시스템
US9571402B2 (en) Congestion control and QoS in NoC by regulating the injection traffic
KR101468833B1 (ko) 계층적 프로파일 스케줄링 및 쉐이핑
CN109214632A (zh) 一种风险控制方法及设备
CN110022227A (zh) 业务处理方法、装置、设备及存储介质
EP3310093B1 (en) Traffic control method and apparatus
KR101609288B1 (ko) 무버퍼 noc 및 noc 전자요소의 데이터 처리 방법
CN104243348B (zh) 一种数据处理方法和装置
CN104580008A (zh) 基于硬件提高多队列随机丢弃报文精度的方法及装置
CN106911740A (zh) 一种缓存管理的方法和装置
ES2883359T3 (es) Método y aparato para mejorar la experiencia de banda ancha utilizando un motor de recomendación basado en la nube
CN107784090A (zh) 一种文件分享方法、设备及计算机可读介质
EP3162002A1 (en) Upsell framework for network services
US11509592B2 (en) Dynamic network receiver-driven data scheduling over a datacenter network for managing endpoint resources and congestion mitigation
CN106888151A (zh) 消息处理方法和系统
CN105490964A (zh) 一种服务质量的处理方法和装置
US8700874B2 (en) Digital counter segmented into short and long access time memory
US7830873B1 (en) Implementation of distributed traffic rate limiters
CN112020073A (zh) 一种小区的分类方法和装置
CN109392006A (zh) 信息的接入控制方法、设备及计算机可读存储介质
CN106982237A (zh) 事务处理方法和系统
US20210329551A1 (en) Last sequence number indication
US11818050B2 (en) Nonlinear traffic shaper with automatically adjustable cost parameters
CN112468758B (zh) 用于分组丢失管理的设备及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200921

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant