CN112965875A - 消息队列的监控方法及装置 - Google Patents
消息队列的监控方法及装置 Download PDFInfo
- Publication number
- CN112965875A CN112965875A CN202110255364.4A CN202110255364A CN112965875A CN 112965875 A CN112965875 A CN 112965875A CN 202110255364 A CN202110255364 A CN 202110255364A CN 112965875 A CN112965875 A CN 112965875A
- Authority
- CN
- China
- Prior art keywords
- message queue
- message
- messages
- monitoring
- accumulated
- 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.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种消息队列的监控方法及装置。其中,该方法包括:获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。本申请解决了由于RabbitMQ并没有提供一种方式去监控消息队列的情况,会出现消费者程序由于某些原因不能在继续消费消息队列里的信息造成的消息队列中的消息堆积越来越多的技术问题。
Description
技术领域
本申请涉及计算机软件领域,具体而言,涉及一种消息队列的监控方法及装置。
背景技术
RabbitMQ是一套开源的消息队列服务软件,以高性能、健壮以及可伸缩性出名,RabbitMQ的使用可以分为消息生产者、消息队列、消息消费者,是目前市面上使用最广泛的消息队列产品之一。但是RabbitMQ并没有提供一种方式去监控消息队列的情况,就会出现消费者程序由于某些原因不能在继续消费消息队列里的信息,导致消息队列中的消息堆积越来越多,最终当平台不可用后,才会去检查消息队列、消费者程序等,会导致平台问题处理缓慢,用户体验不好。
因此有必要针对RabbitMQ提供一种实时监控消息队列状态,并且提供报警的方案。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种消息队列的监控方法及装置,以至少解决由于RabbitMQ并没有提供一种方式去监控消息队列的情况,会出现消费者程序由于某些原因不能在继续消费消息队列里的信息造成的消息队列中的消息堆积越来越多的技术问题。
根据本申请实施例的一个方面,提供了一种消息队列的监控方法,包括:获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
可选地,获取服务器上当前运行的所有消息队列,包括:通过第一预设SHELL脚本指令获取服务器上当前运行的所有消息队列。
可选地,依据每个消息队列中堆积的消息的数量对消息队列的运行状态进行监控之前,上述方法还包括:通过第二预设SHELL脚本指令将每个消息队列按照堆积的消息的数量进行排序;确定堆积的消息的数量最多的消息队列,最为目标消息队列。
可选地,依据每个消息队列中堆积的消息的数量监控消息队列的运行状态,包括:判断目标消息队列中堆积的消息的数量数否超过预设阈值;如果判断结果为是,发送报警信息;如果判断结果为否,拒绝发送报警信息。
可选地,如果判断结果为是,发送报警信息,包括:生成包括报警信息的二进制文件;将二进制文件发送至终端设备。
可选地,上述方法还包括:按照预设时间间隔执行第一预设SHELL脚本指令及第二预设SHELL脚本指令。
可选地,第二预设SHELL脚本指令包括如下至少之一:grep命令和awk命令。
根据本申请实施例的另一方面,还提供了一种消息队列的监控装置,包括:获取模块,用于获取服务器上当前运行的所有消息队列;确定模块,用于分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;监控模块,用于依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的消息队列的监控方法。
根据本申请实施例的再一方面,还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的消息队列的监控方法。
在本申请实施例中,采用获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态的方式,从而实现了实时监控消息队列中堆积的消息,避免了堆积的消息过多导致系统运行缓慢的技术效果,进而解决了由于RabbitMQ并没有提供一种方式去监控消息队列的情况,会出现消费者程序由于某些原因不能在继续消费消息队列里的信息造成的消息队列中的消息堆积越来越多技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种消息队列的监控方法的流程图;
图2是根据本申请实施例的一种消息队列的监控装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种消息队列的监控方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种消息队列的监控方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取服务器上当前运行的所有消息队列;
步骤S104,分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;
步骤S106,依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
通过上述步骤,可以实现实时监控消息队列中堆积的消息,避免了堆积的消息过多导致系统运行缓慢的技术效果。
根据本申请的一个可选的实施例,步骤S102通过以下方法实现:通过第一预设SHELL脚本指令获取服务器上当前运行的所有消息队列。
在本步骤中,在RabbitMQ服务器上通过shell脚本使用rabbitmqctl list_queues命令获取当前所有消息队列的状态。
根据本申请的另一个可选的实施例,在执行步骤S106依据每个消息队列中堆积的消息的数量对消息队列的运行状态进行监控之前,还需要通过第二预设SHELL脚本指令将每个消息队列按照堆积的消息的数量进行排序;确定堆积的消息的数量最多的消息队列,最为目标消息队列。
在本申请的一些可选的实施例中,第二预设SHELL脚本指令包括如下至少之一:grep命令和awk命令。
在本步骤中,通过grep、awk将消息队列按照堆积的数量进行排序,最后取出堆积消息最多的数量。
grep命令用于在文件中执行关键词搜索,并显示匹配的效果。
awk是一种处理文本的语言,是一个强大的文本分析工具。
需要说明的是,grep和awk均属于一种shell脚本语言。
根据本申请的一个可选的实施例,执行步骤S106时,判断目标消息队列中堆积的消息的数量数否超过预设阈值;如果判断结果为是,发送报警信息;如果判断结果为否,拒绝发送报警信息。
具体实施时,通过if语句判断最多的那个数量是否大于3000条(需要说明的是,这里可以设置为其他数量),如果大于则进行报警;如果小于则不报警。
根据本申请的另一个可选的实施例,如果判断结果为是,发送报警信息,包括:生成包括报警信息的二进制文件;将二进制文件发送至终端设备。
在进行报警时,通过微信的二进制文件进行报警,将报警信息发生到指定微信,如果小于,则退出脚本。用户通过客户端设备接收到报警信息后,及时进行处理。
在本申请的一个可选的实施例中,按照预设时间间隔执行第一预设SHELL脚本指令及第二预设SHELL脚本指令。
将上述SHELL脚本指令添加到Linux服务器的计划任务中,按照预设时间间隔执行(例如每秒钟执行一次),即可实现RabbitMQ消息队列实时的监控报警。
图2是根据本申请实施例的一种消息队列的监控装置的结构框图,如图2所示,该装置包括:
获取模块20,用于获取服务器上当前运行的所有消息队列;
确定模块22,用于分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;
监控模块24,用于依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
需要说明的是,图2所示实施例的优选实施方式,可以参见图1所示实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行以上的消息队列的监控方法。
上述非易失性存储介质用于存储执行以下功能的程序:获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
本申请实施例还提供了一种处理器,处理器用于运行存储在存储器中的程序,其中,程序运行时执行以上的消息队列的监控方法。
上述处理器用于运行执行以下功能的程序:获取服务器上当前运行的所有消息队列;分别确定每个消息队列中堆积的消息的数量,其中,消息为两台计算机之间传输的数据单位;依据每个消息队列中堆积的消息的数量监控消息队列的运行状态。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种消息队列的监控方法,其特征在于,包括:
获取服务器上当前运行的所有消息队列;
分别确定每个消息队列中堆积的消息的数量,其中,所述消息为两台计算机之间传输的数据单位;
依据所述每个消息队列中堆积的消息的数量监控所述消息队列的运行状态。
2.根据权利要求1所述的方法,其特征在于,获取服务器上当前运行的所有消息队列,包括:
通过第一预设SHELL脚本指令获取所述服务器上当前运行的所有消息队列。
3.根据权利要求2所述的方法,其特征在于,依据所述每个消息队列中堆积的消息的数量对所述消息队列的运行状态进行监控之前,所述方法还包括:
通过第二预设SHELL脚本指令将所述每个消息队列按照堆积的消息的数量进行排序;
确定堆积的所述消息的数量最多的消息队列,最为目标消息队列。
4.根据权利要求3所述的方法,其特征在于,依据所述每个消息队列中堆积的消息的数量监控所述消息队列的运行状态,包括:
判断所述目标消息队列中堆积的所述消息的数量数否超过预设阈值;
如果判断结果为是,发送报警信息;
如果判断结果为否,拒绝发送所述报警信息。
5.根据权利要求4所述的方法,其特征在于,如果判断结果为是,发送报警信息,包括:
生成包括所述报警信息的二进制文件;
将所述二进制文件发送至终端设备。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:按照预设时间间隔执行所述第一预设SHELL脚本指令及所述第二预设SHELL脚本指令。
7.根据权利要求3或6所述的方法,其特征在于,所述第二预设SHELL脚本指令包括如下至少之一:grep命令和awk命令。
8.一种消息队列的监控装置,其特征在于,包括:
获取模块,用于获取服务器上当前运行的所有消息队列;
确定模块,用于分别确定每个消息队列中堆积的消息的数量,其中,所述消息为两台计算机之间传输的数据单位;
监控模块,用于依据所述每个消息队列中堆积的消息的数量监控所述消息队列的运行状态。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求1至7中任意一项所述的消息队列的监控方法。
10.一种处理器,其特征在于,所述处理器用于运行存储在存储器中的程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的消息队列的监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110255364.4A CN112965875A (zh) | 2021-03-09 | 2021-03-09 | 消息队列的监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110255364.4A CN112965875A (zh) | 2021-03-09 | 2021-03-09 | 消息队列的监控方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112965875A true CN112965875A (zh) | 2021-06-15 |
Family
ID=76277112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110255364.4A Pending CN112965875A (zh) | 2021-03-09 | 2021-03-09 | 消息队列的监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112965875A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990079607A (ko) * | 1998-04-07 | 1999-11-05 | 김영환 | 이동통신 시스템의 메시지 큐 관리방법 |
WO2016127903A1 (zh) * | 2015-02-13 | 2016-08-18 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置和系统 |
CN106844069A (zh) * | 2017-03-10 | 2017-06-13 | 广东欧珀移动通信有限公司 | 调整广播消息队列的方法、装置及终端 |
CN109766236A (zh) * | 2018-12-15 | 2019-05-17 | 中国平安人寿保险股份有限公司 | Kafka消息队列数监控方法、装置、电子设备及存储介质 |
CN110688284A (zh) * | 2019-09-29 | 2020-01-14 | 武汉易酒批电子商务有限公司 | 一种管理和监控RabbitMq消息队列的方法及系统 |
CN111694677A (zh) * | 2020-05-08 | 2020-09-22 | 深圳木成林科技有限公司 | 消息队列的管理方法、装置、终端和计算机可读存储介质 |
-
2021
- 2021-03-09 CN CN202110255364.4A patent/CN112965875A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990079607A (ko) * | 1998-04-07 | 1999-11-05 | 김영환 | 이동통신 시스템의 메시지 큐 관리방법 |
WO2016127903A1 (zh) * | 2015-02-13 | 2016-08-18 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、装置和系统 |
CN106844069A (zh) * | 2017-03-10 | 2017-06-13 | 广东欧珀移动通信有限公司 | 调整广播消息队列的方法、装置及终端 |
CN109766236A (zh) * | 2018-12-15 | 2019-05-17 | 中国平安人寿保险股份有限公司 | Kafka消息队列数监控方法、装置、电子设备及存储介质 |
CN110688284A (zh) * | 2019-09-29 | 2020-01-14 | 武汉易酒批电子商务有限公司 | 一种管理和监控RabbitMq消息队列的方法及系统 |
CN111694677A (zh) * | 2020-05-08 | 2020-09-22 | 深圳木成林科技有限公司 | 消息队列的管理方法、装置、终端和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688018B (zh) | 一种基于设备异常的告警消息推送方法及系统 | |
CN110955586A (zh) | 一种基于日志的系统故障预测方法、装置和设备 | |
CN111444067A (zh) | 一种基于规则引擎的配置化系统监控方法、装置及设备 | |
CN114091704B (zh) | 一种告警压制方法和装置 | |
CN112511580A (zh) | 消息推送的方法、装置、存储介质和设备 | |
CN112532435A (zh) | 一种运维方法、运维管理平台、设备及介质 | |
CN113204692A (zh) | 数据处理任务执行进度的监测方法及装置 | |
CN110737565B (zh) | 一种数据监控方法、装置、电子设备及存储介质 | |
CN110198230B (zh) | 应用的监控方法、装置、存储介质和电子装置 | |
CN104954190A (zh) | 应用服务器故障检测方法及装置 | |
CN110442439B (zh) | 任务进程处理方法、装置和计算机设备 | |
CN111324504B (zh) | 电力通信网络运行状态监测方法和装置 | |
CN112965875A (zh) | 消息队列的监控方法及装置 | |
CN108023741B (zh) | 一种监控资源使用方法及服务器 | |
CN111327487A (zh) | 基于深度学习的电力通信网络运行状态监测方法和装置 | |
CN113141403B (zh) | 一种日志传输方法和装置 | |
CN106357481B (zh) | 一种用电安全管理方法及系统 | |
CN112631577B (zh) | 一种模型的调度方法、模型调度器以及模型安全测试平台 | |
CN115438989A (zh) | 应用于智能产线的数据分析方法、服务器及存储介质 | |
CN112180783B (zh) | 一种基于互联网的信息监控管理方法及装置 | |
CN105393221A (zh) | 应用启动端点的自动调整 | |
CN113961385A (zh) | 智能设备的异常处理方法及其装置、计算机可读存储介质 | |
CN114827157A (zh) | 集群任务处理方法、装置、系统、电子设备及可读介质 | |
CN111179021B (zh) | 基于家庭设备数据的产品推荐方法、系统和可读存储介质 | |
CN116416764A (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 |