CN109240836B - 一种用于配置消息队列的消息的方法和装置 - Google Patents
一种用于配置消息队列的消息的方法和装置 Download PDFInfo
- Publication number
- CN109240836B CN109240836B CN201811039773.5A CN201811039773A CN109240836B CN 109240836 B CN109240836 B CN 109240836B CN 201811039773 A CN201811039773 A CN 201811039773A CN 109240836 B CN109240836 B CN 109240836B
- Authority
- CN
- China
- Prior art keywords
- messages
- message
- rate
- message queue
- threshold
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000001514 detection method Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 15
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了用于配置消息队列的消息的方法和装置。该方法包括:检测消息队列中的消息的数量以及消息数量的变化速率,并且将消息队列中的消息的数量与消息数量下限阈值以及消息数量上限阈值进行比较,以及将消息数量的变化速率与变化速率阈值进行比较;如果消息的数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统。该方法避免消息数量太多以及消息数量增长太快而造成生产者最近生产的消息因为延时太久没有得到消费而失去利用价值,以及避免消息队列中的消息数量快速下降和数量太多而造成应用消息队列的系统无法采用消息队列传递信息。
Description
技术领域
本发明涉及信息处理技术领域,尤指一种用于配置消息队列的消息的方法和装置。
背景技术
MQ(Message Queue,消息队列)是一种应用程序对应用程序的通信方式。MQ是消费者-生产者模型的一个典型的代表,消息的生产者在消息队列的一端往消息队列中不断写入消息,而消息的消费者在消息队列的另一端则可以读取消息队列中的消息。在云平台及很多分布式软件系统中,各个组件之间的消息传递都是通过MQ来实现的,常采用例如RabbitMQ作为其重要的组件。这就要求这个组件具有强大的消息处理能力和健壮性,但是实际使用中,MQ还存在消息队列中的消息数量异常而导致的信息传递不及时和信息失效的问题,并且进而导致系统性能下降及可用性的问题。
发明内容
为了解决上述技术问题,本发明提供了一种用于配置消息队列的消息的方法和装置,其能够避免消息队列中的消息数量异常而导致的信息传递不及时和信息失效的问题。
为了达到本发明目的,本发明提供了一种用于配置消息队列的消息的方法,该方法包括下列步骤:
检测消息队列中的消息的数量以及消息数量的变化速率,并且将消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,以及将消息数量的变化速率与预先设定的变化速率阈值进行比较;
如果消息的数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统。
进一步地,在一个可选的实施例中,如果消息数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统的步骤包括:
如果在预定时间段中,消息队列中的消息的消费者消费消息的速率大于消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息数量的变化速率不高于变化速率阈值;
如果消息队列中的消息的数量低于消息数量下限阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值;
如果在预定时间段中,消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的变化速率小于变化速率阈值;
或者
如果消息队列中的消息的数量高于消息数量上限阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的数量不高于消息数量上限阈值。
进一步地,在一个可选的实施例中,如果消息队列中的消息的数量高于消息数量上限阈值,则所采用的消息队列异常处理策略还包括:
将从此开始接收到的由消息的生产者所生产的消息存储到存储器中;其中,存储器不同于用于保存消息队列中的消息的缓存器。
进一步地,在一个可选的实施例中,在将从此开始接收到的由消息的生产者所生产的消息存储到存储器中的步骤之后,该方法还包括:
判断在存储器中存储的消息的数量是否高于存储器消息数量上限阈值;
如果高于存储器消息数量上限阈值,则删除消息队列中的最早的消息,直到存储器中存储的消息的数量不高于存储器消息数量上限阈值为止。
进一步地,在一个可选的实施例中,在将从此开始接收到的由消息的生产者所生产的消息存储到存储器中的步骤之后,该方法还包括:
判断在预定时间段中,消息队列中的消息的消费者消费消息的速率是否为零;
如果消息队列中的消息的消费者消费消息的速率为零,则删除消息队列中的最早的消息,以使得存储器中存储的消息的数量不高于存储器消息数量上限阈值。
另一方面,本发明实施例提供了一种用于配置消息队列的消息的装置,该装置包括检测与比较模块以及异常处理模块;其中,
检测与比较模块用于:检测消息队列中的消息的数量以及消息数量的变化速率,并且将消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,以及将消息数量的变化速率与预先设定的变化速率阈值进行比较;
异常处理模块用于:如果消息的数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统。
进一步地,在一个可选的实施例中,异常处理模块用于:
如果在预定时间段中,消息队列中的消息的消费者消费消息的速率大于消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息数量的变化速率不高于变化速率阈值;
如果消息队列中的消息的数量低于消息数量下限阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值;
如果在预定时间段中,消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的变化速率小于变化速率阈值;
或者
如果消息队列中的消息的数量高于消息数量上限阈值,则采用下列消息队列异常处理策略进行配置:
向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的数量不高于消息数量上限阈值。
进一步地,在一个可选的实施例中,异常处理模块还用于:如果消息队列中的消息的数量高于消息数量上限阈值,则将从此开始接收到的由消息的生产者所生产的消息存储到存储器中;其中,存储器不同于用于保存消息队列中的消息的缓存器。
进一步地,在一个可选的实施例中,异常处理模块还用于:
在将从此开始接收到的由消息的生产者所生产的消息存储到存储器中之后,判断在存储器中存储的消息的数量是否高于存储器消息数量上限阈值;
如果高于存储器消息数量上限阈值,则删除消息队列中的最早的消息,直到存储器中存储的消息的数量不高于存储器消息数量上限阈值为止。
进一步地,在一个可选的实施例中,异常处理模块还用于:在将从此开始接收到的由消息的生产者所生产的消息存储到存储器中之后,判断在预定时间段中,消息队列中的消息的消费者消费消息的速率是否为零;
如果消息队列中的消息的消费者消费消息的速率为零,则删除消息队列中的最早的消息,以使得存储器中存储的消息的数量不高于存储器消息数量上限阈值。
本发明实施例的有益效果在于,通过分别检测和比较消息的数量和消息数量的变化速率,并且采用相应的消息队列异常处理策略来配置应用所述消息队列传递信息的系统,可以避免消息数量太多以及消息数量增长太快而造成使得生产者最近生产的消息因为延时太久没有得到消费而失去利用价值,以及避免消息队列中的消息数量快速下降和数量太多而造成应用消息队列的系统无法采用消息队列传递信息,进而改善系统性能和可用性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的用于配置消息队列的消息的方法的流程图;
图2为本发明实施例提供的用于配置消息队列的消息的装置的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
一方面,本发明实施例提供了一种用于配置消息队列的消息的方法,如图1所示,该方法包括步骤S101-步骤S103。
步骤S101,检测消息队列中的消息的数量以及消息数量的变化速率,并且将消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,并且将消息数量的变化速率与预先设定的变化速率阈值进行比较。
其中,消息的生产者是应用消息队列传递信息的系统中用于生产消息以便传递信息的组件,消息的消费者是应用消息队列传递信息的系统中用于接收消息的组件。在消息的生产者生产一个消息并且将这一个消息投递至消息队列的时候,如果消息队列向消息的生产者反馈确认消息(ack消息),则认为消息队列中的消息的数量增加1。在消息的消费者消费一个消息并且向消息队列反馈确认消息时,则认为消息队列中的消息的数量减少1。
在步骤S101中,检测消息队列中的消息的数量以及消息数量的变化速率,以用于进而将消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,并且将消息数量的变化速率与预先设定的变化速率阈值进行比较。消息数量下限阈值用于评价消息队列中的消息的数量是否太少,在将消息队列中的消息的数量与消息数量下限阈值进行比较时,如果消息队列中的消息的数量低于消息数量下限阈值,则说明消息队列中的消息的数量太少,有可能影响消息的消费者消费消息。消息数量上限阈值用于评价消息队列中的消息的数量是否太多,如果消息队列中的消息的数量高于消息数量上限阈值,则说明消息队列中的消息的数量太多,有可能影响存储消息的生产者最近生产出的消息。
此外,消息数量的变化速率可以处于下列两种情况:
1、当消息队列中的消息的消费者消费消息的速率大于消息队列中的消息的生产者生产消息的速率的时候,消息数量的变化速率是按照单位时间内消费消息的数量(即消费消息的速率)减去生产消息的数量(即生产消息的速率)得出的差值而计算出的。
2、当消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率的时候,消息数量的变化速率是按照单位时间内生产消息的速率减去消费消息的速率得出的差值而计算出的。
当消息数量的变化速率处于上述的第1种情况的时候,如果消息数量的变化速率高于变化速率阈值时,说明消费者消费消息的速率高于生产者生产消息的速率的程度有可能造成在相对短的时间内消息队列中的消息数量快速下降,此时需要采取措施使得消费者消费消息的速率高于生产者生产消息的速率的程度恢复到常规,以避免由于消息队列中的消息数量快速下降而造成有可能使消息的消费者无法消费消息,并且造成应用消息队列的系统无法采用消息队列传递信息。
当消息数量的变化速率处于上述的第2种情况的时候,如果消息数量的变化速率高于变化速率阈值时,说明生产者生产消息的速率高于消费者消费消息的速率的程度有可能造成在相对短的时间内消息队列中的消息数量快速上升,此时需要采取措施使得生产者生产消息的速率高于消费者消费消息的速率的程度恢复到常规,以避免由于消息队列中的消息数量快速上升而造成有可能使得生产者最近生产的消息因为延时太久没有得到消费而失去利用价值。
需要说明的是,在第1种情况的消息数量的变化速率与第2种情况的消息数量的变化速率可以不同。
步骤S103,如果消息的数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统。
在步骤S103中,如果出现上述提到的几种超出相应的阈值的情况,则对这几种情况分别采取相应的消息队列异常处理策略,以配置应用这个消息队列来传递信息的系统(例如,云平台系统以及各种分布式软件系统)。
本发明实施例的有益效果在于,通过分别检测和比较消息的数量和消息数量的变化速率,并且采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统,可以避免消息数量太多以及消息数量增长太快而造成使得生产者最近生产的消息因为延时太久没有得到消费而失去利用价值,以及避免消息队列中的消息数量快速下降和数量太多而造成应用消息队列的系统无法采用消息队列传递信息,进而改善系统性能和可用性。
进一步地,在一个可选的实施例中,步骤S103包括针对下列四种情况所采取的相应的消息队列异常处理策略,并且获得对应的效果:
第一种情况:在预定时间段中,消息队列中的消息的消费者消费消息的速率大于消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的消息数量的变化速率高于变化速率阈值。
针对上述第一种情况,相应的消息队列异常处理策略为:向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息数量的变化速率不高于变化速率阈值。在此,配置消息的生产者和消息的消费者,所产生的效果是使得消息数量的变化速率不高于变化速率阈值。
第二种情况:消息队列中的消息的数量低于消息数量下限阈值。
针对上述第二种情况,相应的消息队列异常处理策略为:向消息的生产者通知消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值。
第三种情况:在预定时间段中,消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的消息数量的变化速率高于变化速率阈值。
针对上述第三种情况,相应的消息队列异常处理策略为:向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的变化速率小于变化速率阈值。
第四种情况:消息队列中的消息的数量高于消息数量上限阈值。
针对上述第四种情况,相应的消息队列异常处理策略为:向消息的生产者通知消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向消息的消费者通知消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得消息数量的数量不高于消息数量上限阈值。
进一步地,在一个可选的实施例中,在步骤S103中,如果消息队列中的消息的数量高于预先设定的消息数量上限阈值,则所采用的消息队列异常处理策略还包括:将从此开始接收到的由消息的生产者所生产的消息存储到存储器中;其中,存储器不同于用于保存消息队列中的消息的缓存器。缓存器用于存储消息列队的消息;在本文中所说的存储器指的是外存储器(例如,硬盘),用于存储生产者已经生产出的但尚未进入消息队列的消息,这些消息是生产者最近生产出的消息,但此时已经不在安排到消息队列中,而是存储到存储器中。通过这个可选的实施例提供的消息队列异常处理策略,可以存储已经生产出的但尚未进入消息队列的消息,以便随后由消费者消费。当消息队列中的消息减少到不再高于消息数量上限阈值的时候,存储器中存储的消息可以按照顺序安排到消息队列中。
进一步地,在一个可选的实施例中,在将由消息的生产者生产的消息存储到存储器中之后,判断在存储器中存储的消息的数量是否高于存储器消息数量上限阈值;如果高于存储器消息数量上限阈值,则说明存储器中可能无法再存储更多的消息了,需要删除消息,因此采用下列消息队列异常处理策略:删除消息队列中的最早的消息,直到存储器中存储的消息的数量不高于存储器消息数量上限阈值为止。由于消息队列中的最早的消息是在所有的消息中最优可能因为延时太久没有得到消费而失去利用价值,因此删除消息队列中最早的消息,以便存储器中的消息可以被安排到消息队列中存储(缓存器中存储),最终使存储器中存储的消息的数量不高于存储器消息数量上限阈值,能够继续存储更新的消息。
进一步地,在一个可选的实施例中,在将由消息的生产者生产的消息存储到存储器中之后,判断在预定时间段中,消息队列中的消息的消费者消费消息的速率是否为零;如果消息队列中的消息的消费者消费消息的速率为零,则删除消息队列中的最早的消息,以使得存储器中存储的消息的数量不高于存储器消息数量上限阈值。
另一方面,本发明实施例提供了一种用于配置消息队列的消息的装置,如图2所示,该装置包括检测与比较模块201以及异常处理模块203。
检测与比较模块201用于:检测消息队列中的消息的数量以及消息数量的变化速率,并且将消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,以及将消息数量的变化速率与预先设定的变化速率阈值进行比较。
异常处理模块203用于:如果消息的数量低于消息数量下限阈值、高于消息数量上限阈值或者消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用消息队列传递信息的系统。
本发明实施例的有益效果在于,通过分别检测和比较消息的数量和消息数量的变化速率,并且采用相应的消息队列异常处理策略来配置应用所述消息队列传递信息的系统,可以避免消息数量太多以及消息数量增长太快而造成使得生产者最近生产的消息因为延时太久没有得到消费而失去利用价值,以及避免消息队列中的消息数量快速下降和数量太多而造成应用消息队列的系统无法采用消息队列传递信息,进而改善系统性能和可用性。
进一步地,在一个可选的实施例中,异常处理模块203用于:
如果在预定时间段中,消息队列中的消息的消费者消费消息的速率大于所述消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得所述消息数量的变化速率不高于所述变化速率阈值;
如果所述消息队列中的消息的数量低于消息数量下限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值;
如果在预定时间段中,所述消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的变化速率小于所述变化速率阈值;
或者
如果消息队列中的消息的数量高于消息数量上限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的数量不高于消息数量上限阈值。
进一步地,在一个可选的实施例中,所述异常处理模块203还用于:如果消息队列中的消息的数量高于消息数量上限阈值,则将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中;其中,所述存储器不同于用于保存所述消息队列中的消息的缓存器。
进一步地,在一个可选的实施例中,异常处理模块203还用于:
在将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中之后,判断在所述存储器中存储的消息的数量是否高于所述存储器消息数量上限阈值;
如果高于所述存储器消息数量上限阈值,则删除所述消息队列中的最早的消息,直到所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值为止。
进一步地,在一个可选的实施例中,异常处理模块203还用于:在将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中之后,判断在所述预定时间段中,所述消息队列中的消息的消费者消费消息的速率是否为零;
如果所述消息队列中的消息的消费者消费消息的速率为零,则删除所述消息队列中的最早的消息,以使得所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值。
虽然本发明所揭露的实施方式如上,但上述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种用于配置消息队列的消息的方法,其特征在于,所述方法包括下列步骤:
检测消息队列中的消息的数量以及所述消息数量的变化速率,并且将所述消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,以及将所述消息数量的变化速率与预先设定的变化速率阈值进行比较;
如果所述消息的数量低于所述消息数量下限阈值、高于所述消息数量上限阈值或者所述消息数量的变化速率高于所述变化速率阈值,则采用相应的消息队列异常处理策略来配置应用所述消息队列传递信息的系统;
其中,所述如果所述消息数量低于消息数量下限阈值、高于消息数量上限阈值或者所述消息数量的变化速率高于变化速率阈值,则采用相应的消息队列异常处理策略来配置应用所述消息队列传递信息的系统的步骤包括:
如果在预定时间段中,消息队列中的消息的消费者消费消息的速率大于所述消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得所述消息数量的变化速率不高于所述变化速率阈值;
如果所述消息队列中的消息的数量低于消息数量下限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值;
如果在预定时间段中,所述消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的变化速率小于所述变化速率阈值;
或者
如果消息队列中的消息的数量高于消息数量上限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的数量不高于消息数量上限阈值。
2.根据权利要求1所述的方法,其特征在于,如果消息队列中的消息的数量高于消息数量上限阈值,则所采用的消息队列异常处理策略还包括:
将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中;其中,所述存储器不同于用于保存所述消息队列中的消息的缓存器。
3.根据权利要求2所述的方法,其特征在于,在所述将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中的步骤之后,所述方法还包括:
判断在所述存储器中存储的消息的数量是否高于所述存储器消息数量上限阈值;
如果高于所述存储器消息数量上限阈值,则删除所述消息队列中的最早的消息,直到所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值为止。
4.根据权利要求2所述的方法,其特征在于,在所述将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中的步骤之后,所述方法还包括:
判断在所述预定时间段中,所述消息队列中的消息的消费者消费消息的速率是否为零;
如果所述消息队列中的消息的消费者消费消息的速率为零,则删除所述消息队列中的最早的消息,以使得所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值。
5.一种用于配置消息队列的消息的装置,其特征在于,所述装置包括检测与比较模块以及异常处理模块;其中,
所述检测与比较模块用于:检测消息队列中的消息的数量以及所述消息数量的变化速率,并且将所述消息队列中的消息的数量与预先设定的消息数量下限阈值以及消息数量上限阈值进行比较,以及将所述消息数量的变化速率与预先设定的变化速率阈值进行比较;
所述异常处理模块用于:如果所述消息的数量低于所述消息数量下限阈值、高于所述消息数量上限阈值或者所述消息数量的变化速率高于所述变化速率阈值,则采用相应的消息队列异常处理策略来配置应用所述消息队列传递信息的系统;
其中,所述异常处理模块用于:
如果在预定时间段中,消息队列中的消息的消费者消费消息的速率大于所述消息队列中的消息的生产者生产消息的速率,并且作为消费消息的速率与生产消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得所述消息数量的变化速率不高于所述变化速率阈值;
如果所述消息队列中的消息的数量低于消息数量下限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及提高生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及降低消费消息的速率的指示,以使得消息队列中的消息的数量不低于消息数量下限阈值;
如果在预定时间段中,所述消息队列中的消息的生产者生产消息的速率大于消息队列中的消息的消费者消费消息的速率,并且作为生产消息的速率与消费消息的速率的差值的所述消息数量的变化速率高于变化速率阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的变化速率小于所述变化速率阈值;
或者
如果消息队列中的消息的数量高于消息数量上限阈值,则采用下列消息队列异常处理策略进行配置:
向所述消息的生产者通知所述消息的消费者消费消息的速率以及降低生产消息的速率的指示,和/或向所述消息的消费者通知所述消息的生产者生产消息的速率以及提高消费消息的速率的指示,以使得所述消息数量的数量不高于消息数量上限阈值。
6.根据权利要求5所述的装置,其特征在于,所述异常处理模块还用于:如果消息队列中的消息的数量高于消息数量上限阈值,则将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中;其中,所述存储器不同于用于保存所述消息队列中的消息的缓存器。
7.根据权利要求6所述的装置,其特征在于,所述异常处理模块还用于:
在将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中之后,判断在所述存储器中存储的消息的数量是否高于所述存储器消息数量上限阈值;
如果高于所述存储器消息数量上限阈值,则删除所述消息队列中的最早的消息,直到所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值为止。
8.根据权利要求6所述的装置,其特征在于,所述异常处理模块还用于:在将从此开始接收到的由所述消息的生产者所生产的消息存储到存储器中之后,判断在所述预定时间段中,所述消息队列中的消息的消费者消费消息的速率是否为零;
如果所述消息队列中的消息的消费者消费消息的速率为零,则删除所述消息队列中的最早的消息,以使得所述存储器中存储的消息的数量不高于所述存储器消息数量上限阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039773.5A CN109240836B (zh) | 2018-09-06 | 2018-09-06 | 一种用于配置消息队列的消息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811039773.5A CN109240836B (zh) | 2018-09-06 | 2018-09-06 | 一种用于配置消息队列的消息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109240836A CN109240836A (zh) | 2019-01-18 |
CN109240836B true CN109240836B (zh) | 2020-10-30 |
Family
ID=65060124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811039773.5A Active CN109240836B (zh) | 2018-09-06 | 2018-09-06 | 一种用于配置消息队列的消息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109240836B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800213B (zh) * | 2019-01-22 | 2022-03-25 | 四川长虹电器股份有限公司 | 基于rabbitmq的生产质量数据统计系统和方法 |
CN112764892A (zh) * | 2019-10-21 | 2021-05-07 | 伊姆西Ip控股有限责任公司 | 管理进程的方法、设备和计算机程序产品 |
CN111212390B (zh) * | 2019-12-23 | 2022-08-26 | 北京健康之家科技有限公司 | 消息队列的处理方法、装置及设备 |
CN111694677A (zh) * | 2020-05-08 | 2020-09-22 | 深圳木成林科技有限公司 | 消息队列的管理方法、装置、终端和计算机可读存储介质 |
CN114490091B (zh) * | 2022-04-06 | 2022-07-08 | 江苏金恒信息科技股份有限公司 | 工业数据采集管理系统中监控规则引擎性能的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599987A (zh) * | 2008-06-05 | 2009-12-09 | 中兴通讯股份有限公司 | 消息队列管理方法和装置 |
CN105871966A (zh) * | 2015-09-22 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 消息分发的方法、装置及系统 |
CN106708607A (zh) * | 2015-11-12 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 消息队列的拥塞控制方法和装置 |
CN107623642A (zh) * | 2017-08-30 | 2018-01-23 | 山东中创软件商用中间件股份有限公司 | 一种消息流量控制方法及装置 |
CN108023938A (zh) * | 2017-11-13 | 2018-05-11 | 联动优势科技有限公司 | 一种消息发送方法及服务器 |
-
2018
- 2018-09-06 CN CN201811039773.5A patent/CN109240836B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599987A (zh) * | 2008-06-05 | 2009-12-09 | 中兴通讯股份有限公司 | 消息队列管理方法和装置 |
CN105871966A (zh) * | 2015-09-22 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 消息分发的方法、装置及系统 |
CN106708607A (zh) * | 2015-11-12 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 消息队列的拥塞控制方法和装置 |
CN107623642A (zh) * | 2017-08-30 | 2018-01-23 | 山东中创软件商用中间件股份有限公司 | 一种消息流量控制方法及装置 |
CN108023938A (zh) * | 2017-11-13 | 2018-05-11 | 联动优势科技有限公司 | 一种消息发送方法及服务器 |
Non-Patent Citations (1)
Title |
---|
"分布式系统中基于中间件的异步通信可靠";庞佳丽;《万方》;20180801;论文正文第4章 * |
Also Published As
Publication number | Publication date |
---|---|
CN109240836A (zh) | 2019-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240836B (zh) | 一种用于配置消息队列的消息的方法和装置 | |
WO2021000693A1 (zh) | 一种服务熔断方法、装置及消息中间件 | |
CN110196770B (zh) | 云系统内存数据处理方法、装置、设备及存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
CN111538600A (zh) | 消息处理方法、装置、计算机设备及存储介质 | |
CN113660173B (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN107341062B (zh) | 一种数据推送方法、装置、设备以及存储介质 | |
JP2013084275A (ja) | メモリの寿命を縮める動作を遅延させるシステム、方法、及びコンピュータプログラム製品 | |
US10592317B2 (en) | Timeout processing for messages | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
CN114095438B (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
US20150286548A1 (en) | Information processing device and method | |
CN112437001B (zh) | 保证消息可靠性投递与消费方法、装置 | |
US10666575B2 (en) | Asymmetric co-operative queue management for messages | |
US10055000B2 (en) | Method and apparatus for controlling hard drive power consumption and controlling a management service of hard drive power consumption | |
CN111913807A (zh) | 一种基于多个存储区域的事件处理方法、系统及装置 | |
CN105700656B (zh) | 待机异常耗电侦测系统及方法 | |
CN115033927A (zh) | 一种检测数据完整性的方法、装置、设备及介质 | |
CN112882655A (zh) | 数据缓存方法、装置、电子设备及存储介质 | |
CN111934909B (zh) | 主备机ip资源切换方法、装置、计算机设备和存储介质 | |
CN111090627B (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 | |
CN114020209A (zh) | 一种客户端业务限速方法、装置、设备及存储介质 | |
CN112463416A (zh) | 消息队列中数据处理的方法、装置、设备及存储介质 | |
JP2010049314A (ja) | タスクスケジューリング装置およびタスクスケジューリング方法 | |
CN106331036B (zh) | 一种服务器控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
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: 20200915 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |