一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

消息队列处理方法、装置及计算设备与流程

2021-12-17 21:36:00 来源:中国专利 TAG:


1.本发明实施例涉及计算机技术领域,具体涉及一种消息队列处理方法、装置及计算设备。


背景技术:

2.随着业务量的增长,越来越多包括部分有实时性要求的业务接入了消息队列处理机制,因此,对于消息队列处理效率有了基于应用实时性的差异化要求。尤其在大规模各类应用共存的运营商环境下,对于各个独立应用消息积压问题的快速发现和解决,显得极为重要。
3.目前的消息队列处理方法主要为通过预先设定统一的阈值,当队列消息积压量超过阈值时,则进行告警,然后由人工根据应用情况采用相应的处理方式。这种方式缺乏应用维度的差异化考虑,容易造成误报,从而使得消息积压的处理效率较低。


技术实现要素:

4.鉴于上述问题,本发明实施例提供了一种消息队列处理方法、装置及计算设备,能够提高消息积压的处理效率。
5.根据本发明实施例的第一方面,提供了一种消息队列处理方法,包括:采集消息队列的指标数据;根据所述指标数据,确定所述消息队列的排队时长;根据所述排队时长以及所述消息队列对应的优先级信息,确定所述消息队列的处理级别;若所述处理级别大于或者等于预设处理级别阈值,则确定所述消息队列的消费者的消费能力是否降低;若确定所述消息队列的消费者的消费能力没有降低,则为所述消息队列进行扩容处理;若确定所述消息队列的消费者的消费能力降低,则对所述消息队列进行重启处理。
6.在一种可选的方式中,所述指标数据包括所述消息队列的处理记录、出队量;
7.所述若所述处理级别大于或者等于预设处理级别阈值,则确定所述消息队列的消费者的消费能力是否降低,具体包括:获取所述消息队列的最近预设次数内的处理级别;当所述最近预设次数内的处理级别均小于预设处理级别阈值时,则根据所述处理记录,确定所述消息队列在第一预设时间内是否进行过处理;若确定所述消息队列在所述第一预设时间内没有进行过处理,则根据所述出队量,确定所述消息队列的当前消费速度,并确定所述当前消费速度与预设消费速度峰值之比是否大于预设比例阈值;若确定所述当前消费速度与预设消费速度峰值之比大于或者等于所述预设比例阈值,则确定所述消息队列的消费者的消费能力没有降低;若确定所述当前消费速度与预设消费速度峰值之比小于所述预设比例阈值,则确定所述消息队列的消费者的消费能力降低。
8.在一种可选的方式中,所述若所述处理级别大于或者等于预设处理级别阈值,则确定所述消息队列的消费者的消费能力是否降低,具体还包括:根据所述出队量,确定所述消息队列的历史出队速度峰值;根据所述历史出队速度峰值,更新所述预设消费速度峰值。
9.在一种可选的方式中,所述若确定所述消息队列的消费者的消费能力没有降低,
则对所述消息队列进行扩容处理,具体包括:根据所述处理记录,确定消息队列是否处于扩容状态;若确定所述消息队列处于扩容状态,则为所述消息队列进行追加扩容处理;若确定所述消息队列没有处于扩容状态,则为所述消息队列进行扩容处理。
10.在一种可选的方式中,所述指标数据还包括所述消息队列的入队量;所述若确定所述消息队列的消费者的消费能力降低,则对所述消息队列进行重启处理,具体包括:根据所述处理记录,确定所述消息队列在第二预设时间内是否进行过扩容处理或重启处理;若确定所述消息队列在所述第二预设时间内没有进行过扩容处理及重启处理,则根据所述入队量确定所述消息队列的当前入队速度,并确定所述当前入队速度是否大于预设入队速度阈值;若确定所述当前入队速度大于预设入队速度阈值,则对所述消息队列进行重启处理和扩容处理;若确定所述当前入队速度小于或者等于所述预设入队速度阈值,则对所述消息队列进行重启处理。
11.在一种可选的方式中,所述指标数据包括所述消息队列的出队量、积压量;所述根据所述指标数据,确定所述消息队列的排队时长,具体包括:根据所述出队量,确定前一分钟的平均每秒出队量,并将所述平均每秒出队量确定为当前消费速度;将所述积压量除以所述当前消费速度,得到所述排队时长。
12.在一种可选的方式中,所述根据所述排队时长以及所述消息队列对应的优先级信息,确定所述消息队列的处理级别,具体包括:
13.根据预设的消息队列与优先级信息的对应关系,确定所述消息队列对应的优先级信息;
14.根据以下公式确定所述处理级别:
15.g=s-(t/k)*w
16.其中,g为所述处理级别,s为预设原始处理级别,t为所述排队时长,k为预设参数,w为所述消息队列对应的优先级信息。
17.根据本发明实施例的第二方面,提供了一种消息队列处理装置,包括:采集模块,用于采集消息队列的指标数据;确定模块,用于根据所述指标数据,确定所述消息队列的排队时长,以及根据所述排队时长以及所述消息队列对应的优先级信息,确定所述消息队列的处理级别;判断模块,用于根若所述处理级别大于或者等于预设处理级别阈值,则确定所述消息队列的消费者的消费能力是否降低;处理模块,用于若确定所述消息队列的消费者的消费能力没有降低,则为所述消息队列进行扩容处理,以及,若确定所述消息队列的消费者的消费能力降低,则对所述消息队列进行重启处理。
18.根据本发明实施例的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的消息队列处理方法的操作。
19.根据本发明实施例的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算设备上运行时,使得计算设备执行执行上述的消息队列处理方法。
20.本发明实施例通过采集消息队列的指标数据,根据指标数据,确定消息队列的排队时长,根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别,若处理
级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低,若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理,若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理,能够将消息排队时长这一关键性指标与各消息队列对应业务实时性的差异化要求结合,得到一个合理的消息队列评分,并根据消息队列评分结果,对低分的消息队列进行分析,判断出消息队列是入队量增加或者消费者消费能力降低导致的问题,从而进行相应的处理,能够自动分析消费能力的供需变化来快速定位问题,通过自动化处理重启及扩容来实现快速处理,从而提高消息积压的处理效率。
21.进一步地,还能够实现基于应用需求的告警及处理机制,并且将这种差异进一步应用在容忍度上,解决了对复杂多样的it应用队列问题的差异化告警及处理,同时利用差异化的应用容忍度配置,实现了异常先于客户感知解决,提升了用户体验。
22.进一步地,能够提供多种形式的处理方案,并给出最优决策,并实现自动化处理,不再局限于消费者进程可用性一种单一场景,整个方法和装置可以覆盖目前所有消息队列异常问题。
23.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
24.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
25.图1示出了本发明其中一实施例提供的消息队列处理方法的流程示意图;
26.图2示出了本发明另一实施例提供的消息队列处理方法的流程示意图;
27.图3示出了本发明实施例提供的消息队列处理装置的结构示意图;
28.图4示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
29.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
30.发明人对现有技术进行分析后发现,目前的消息队列处理方法主要为通过预先设定统一的阈值,当队列消息积压量超过阈值时,则进行告警,然后由人工根据应用情况采用相应的处理方式。但是,消息本身是允许异步的,这种方式缺乏应用维度的差异化考虑,过于单一,容易造成误报,从而使得消息积压的处理效率较低。另外,还存在基于业务感知进行告警的消息队列处理方法,虽然能够在结果层面上具有指向性,但是业务感知不一定是由于队列问题导致的,仍然需要检查数据库、主机、网络等方面的问题,从而需要花费较多的时间,并且该方法受限于运维人员的个人经验和技术水平,处理时间较长。
31.基于此,本发明实施例提供了一种消息队列处理方法、装置及计算设备,能够提高消息积压的处理效率。
32.具体地,下面结合附图,对本发明实施例作进一步阐述。
33.其中,应当理解的是,本发明提供的下述实施例之间,只要不冲突,均可相互结合以形成新的实施方式。
34.图1示出了本发明其中一实施例提供的消息队列处理方法的流程示意图。该方法可以应用于计算设备。如图1所示,该方法包括:
35.步骤110、采集消息队列的指标数据。
36.其中,消息队列的指标数据可以包括消息队列的入队量、出队量、积压量、生产者信息、消费者信息等等中的一种或多种。入队量是指进入消息队列中的消息数量;出队量是指消息队列中已经处理的消息数量;积压量是指消息队列中待处理的消息数量;生产者/消费者信息是指生产者/消费者的地址信息、端口信息、实例名称等等。其中,生产者可以为指发送消息的服务器,消费者可以为处理消息的服务器。
37.采集消息队列的指标数据,具体可以包括:根据消息中间件的实例信息,从消息中间件中定时采集消息队列的指标数据。其中,消息中间件的实例信息可以包括:地址信息、端口信息、实例编码信息、系统归属信息等,从而能够从特定的消息中间件中采集特定的消息队列的指标数据。
38.在一些实施例中,在步骤110之后,该方法还可以包括:将所述指标数据存储到数据库中。将指标数据写入数据库中,能够将指标数据持久化,以供分析和处理。
39.步骤120、根据指标数据,确定消息队列的排队时长。
40.具体地,步骤120可以包括:
41.步骤121、根据出队量,确定前一分钟的平均每秒出队量,并将平均每秒出队量确定为当前消费速度。
42.其中,获取前一分钟的总的出队量,将前一分钟的总的出队量除以60秒,确定得到前一分钟的平均每秒出队量,则可以将平均每秒出队量确定为当前消费速度。
43.步骤122、将积压量除以当前消费速度,得到排队时长。
44.可以根据以下公式确定排队时长:
45.t=s/v
46.其中,t为排队时长,s为当前积压量,v为当前消费速度。
47.步骤130、根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别。
48.具体地,步骤130包括:
49.步骤131、根据预设的消息队列与优先级信息的对应关系,确定消息队列对应的优先级信息。
50.由于不同的消息队列对应不同的业务,而不同的业务又有不同的实时性要求,需要为不同的消息队列配置不同的优先级信息,优先级信息是根据消息队列对应的业务的紧急程度来配置的,以适当延迟某些不太紧急的消息的排队时长或者缩短某些较紧急的消息的排队时长。在本实施例中,可以预先设置消息队列与优先级信息的对应关系,例如,优先级信息可以为一个数值,若消息队列a为实时消息,则优先级信息为10,若消息队列b为非实时消息,则优先级信息为0.1。
51.步骤132、根据以下公式确定处理级别:
52.g=s-(t/k)*w
53.其中,g为处理级别,s为预设原始处理级别,t为排队时长,k为预设参数,w为消息队列对应的优先级信息。
54.其中,排队时长可以以秒为单位。预设原始处理级别可以根据实际使用情况预先设置,例如,预设原始处理级别为100。预设参数也可以根据实际使用情况预先设置,例如,预设参数为2,则排队2秒处理级别上升一个等级。
55.步骤140、若处理级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低。
56.其中,在确定得到处理级别后,根据处理级别,决定是否对消息队列进行分析和处理。在本实施例中,处理级别较高,则表明该消息队列还不需要被处理,处理级别较低,则表明该消息队列需要被处理。具体地,可以设置预设处理级别阈值,当处理级别大于或者等于预设处理级别阈值时则对该消息队列进行分析和处理,当处理级别小于预设处理级别阈值时则不对该消息队列进行分析和处理,从而筛选出需要处理的消息队列。
57.在一些实施例中,步骤140可以包括:
58.步骤141、获取消息队列的最近预设次数内的处理级别。
59.其中,预设次数可以为2次,则最近预设次数内的处理级别是指最近2次的处理级别。
60.步骤142、当最近预设次数内的处理级别均小于预设处理级别阈值时,则根据处理记录,确定消息队列在第一预设时间内是否进行过处理。
61.具体地,确定最近预设次数内的处理级别是否均小于预设处理级别阈值,若确定最近预设次数内的处理级别均小于预设处理级别阈值,则根据处理记录,确定消息队列在第一预设时间内是否进行过处理;若确定最近预设次数内的处理级别大于或者等于预设处理级别阈值,则不对消息队列进行处理。
62.其中,消息队列的指标数据还可以包括处理记录。处理记录是指消息队列的重启处理记录以及扩容处理记录。每次对消息队列进行处理时,则生成消息队列的处理记录。根据处理记录,确定消息队列在第一预设时间内是否进行过处理,具体可以为:查询处理记录,若查询到消息队列在第一预设时间内的重启处理记录或扩容处理记录,则确定消息队列在第一预设时间内进行过处理,若查询不到消息队列在第一预设时间内的重启处理记录或扩容处理记录,则确定消息队列在第一预设时间内没有进行过处理。其中,第一预设时间可以根据实际应用情况进行设置,例如,第一预设时间为前10分钟。
63.步骤143、若确定消息队列在第一预设时间内没有进行过处理,则根据出队量,确定消息队列的当前消费速度,并确定当前消费速度与预设消费速度峰值之比是否大于预设比例阈值。
64.其中,当前消费速度可以为前一分钟的平均每秒出队量,即前一分钟的总的出队量除以60秒。预设消费速度峰值可以为预先设置的,还可以根据实际应用情况进行调整。预设比例阈值是指预先设置的比例阈值,当当前消费速度与预设消费速度峰值之比大于或者等于预设比例阈值时,即表明当前消费速度较高,当当前消费速度与预设消费速度峰值之比小于预设比例阈值时,即表明当前消费速度较低。
65.其中,在步骤143之前,步骤140还可以包括:根据出队量,确定消息队列的历史出
队速度峰值;根据历史出队速度峰值,更新预设消费速度峰值。例如,每分钟均确定一个出队速度,将一天内最大的出队速度作为出队速度峰值,从而确定得到过去一个月中每天的出队速度峰值(即历史出队速度峰值),每天统计一次消息队列在过去一个月中每天的出队速度峰值,并将预设消费速度峰值更新为最大的出队速度峰值。又例如,假设过去30天中每天的出队速度峰值分别为a1、a2、a3…
a
30
,且a1>a2>a3>

>a
30
,则在第31天时预设消费速度峰值=a1,若确定得到第31天的出队速度峰值为a
31
,且a
31
>a1,则在第32天时将预设消费速度峰值更新为a
31

66.步骤144、若确定当前消费速度与预设消费速度峰值之比大于或者等于预设比例阈值,则确定消息队列的消费者的消费能力没有降低。
67.步骤145、若确定当前消费速度与预设消费速度峰值之比小于预设比例阈值,则确定消息队列的消费者的消费能力降低。
68.当确定当前消费速度与预设消费速度峰值之比大于或者等于预设比例阈值,表明当前消费速度较高,则确定消息队列的消费者的消费能力没有降低;当当前消费速度与预设消费速度峰值之比小于预设比例阈值时,表明当前消费速度较低,则确定消息队列的消费者的消费能力降低。
69.步骤150、若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理。
70.其中,排队时长较长,但消息队列的消费者的消费能力没有降低,则可能是消息队列的入队量突增造成的,则可以为消息队列进行扩容处理,以提高消息的处理速度。
71.其中,为消息队列进行扩容处理具体可以为:根据消息队列的端口以及消费者的端口,对消息队列和消费者实例进行扩容,同时确保消息队列的数量和消费者实例的数量是相等的,并且,查询消息队列的时序性配置,若消息队列有时序性要求,则要求人工接入扩容,若消息队列无时序性要求,则直接进行扩容。
72.步骤160、若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理。
73.其中,排队时长较长,且消息队列的消费者的消费能力降低,则可能是消息队列的消费者的消费能力降低,而消费者的消费能力降低可能为编码错误等原因,因此可以对消息队列进行重启处理,以使消费者的消费能力恢复。
74.其中,对消息队列进行重启处理具体可以为:根据消息队列的端口,重启消费队列所在的服务器,从而进行重启处理。
75.本发明实施例通过采集消息队列的指标数据,根据指标数据,确定消息队列的排队时长,根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别,若处理级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低,若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理,若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理,能够将消息排队时长这一关键性指标与各消息队列对应业务实时性的差异化要求结合,得到一个合理的消息队列评分,并根据消息队列评分结果,对低分的消息队列进行分析,判断出消息队列是入队量增加或者消费者消费能力降低导致的问题,从而进行相应的处理,能够自动分析消费能力的供需变化来快速定位问题,通过自动化处理重启及扩容来实现快速处理,从而提高消息积压的
处理效率,并且,还能够实现基于应用需求的告警及处理机制,并且将这种差异进一步应用在容忍度上,解决了对复杂多样的it应用队列问题的差异化告警及处理,同时利用差异化的应用容忍度配置,实现了异常先于客户感知解决,提升了用户体验。
76.在一些其他实施例中,如图2所示,步骤150具体可以包括:
77.步骤151、根据处理记录,确定消息队列是否处于扩容状态。
78.其中,可以查询处理记录,并结合消息队列一次扩容需要的时间,确定消息队列是否处于扩容状态。例如,若消息队列一次扩容需要的时间为5分钟,查询到3分钟之前消息队列开始扩容,则消息队列当前仍处于扩容状态。
79.步骤152、若确定消息队列处于扩容状态,则为消息队列进行追加扩容处理。
80.其中,若确定消息队列处于扩容状态,即表明消息队列扩容的数量不足以处理完积压的消息,则在原来扩容的基础上再扩容,从而进行追加扩容处理。
81.步骤153、若确定消息队列没有处于扩容状态,则为消息队列进行扩容处理。
82.在一些其他实施例中,如图2所示,步骤160具体可以包括:
83.步骤161、根据处理记录,确定消息队列在第二预设时间内是否进行过扩容处理或重启处理。
84.其中,当消息队列的消费者的消费能力降低时,查询处理记录,若查询到消息队列在第二预设时间内的重启处理记录或扩容处理记录,则确定消息队列在第二预设时间内是否进行过扩容处理或重启处理,若查询不到消息队列在第二预设时间内的重启处理记录或扩容处理记录,则确定消息队列在第二预设时间内没有进行过处理。其中,第二预设时间可以根据实际应用情况进行设置,例如,第二预设时间为前30分钟。
85.步骤162、若确定消息队列在第二预设时间内没有进行过扩容处理及重启处理,则根据入队量确定消息队列的当前入队速度,并确定当前入队速度是否大于预设入队速度阈值。
86.其中,根据入队量确定消息队列的当前入队速度,具体可以为:获取前一分钟的总的入队量,将前一分钟的总的入队量除以60秒,计算得到当前入队速度。预设入队速度阈值为预先设置的入队速度的最大值,当当前入队速度大于预设入队速度阈值时,则表明消息队列的入队量增加,当当前入队速度小于或者等于预设入队速度阈值时,则表明消息队列的入队量没有增加。
87.步骤163、若确定当前入队速度大于预设入队速度阈值,则对消息队列进行重启处理和扩容处理。
88.若当前入队速度大于预设入队速度阈值,表明消息队列的消息积压不仅为消费者的消费能力降低造成的而且为消息队列的入队量增加造成的,因此需要同时进行重启处理和扩容处理。
89.步骤164、若确定当前入队速度小于或者等于预设入队速度阈值,则对消息队列进行重启处理。
90.若当前入队速度小于或者等于预设入队速度阈值,表明消息队列的消息积压只是为消费者的消费能力降低造成的,因此只对消息队列进行重启处理。
91.在一些其他实施例中,步骤160还可以包括:
92.步骤165、若确定消息队列在第二预设时间内进行过扩容处理或重启处理,则生成
人工介入告警。
93.若确定消息队列在第二预设时间内进行过扩容处理或重启处理,即表明消息队列的消息积压原因通过扩容和重启均无法解决,则生成人工介入告警,以提示人工介入。
94.在本实施例中,能够提供多种形式的处理方案,并给出最优决策,并实现自动化处理,不再局限于消费者进程可用性一种单一场景,整个方法和装置可以覆盖目前所有消息队列异常问题。
95.在一些其他实施例中,该方法还包括:
96.步骤170、展示消息队列的指标数据。
97.其中,指标数据可以包括入队量、出队量、积压量、生产者信息、消费者信息、处理记录。例如,展示消息队列的指标数据可以如以下表1所示。
[0098][0099]
图3示出了本发明实施例提供的消息队列处理装置的结构示意图。该方法可以应用于计算设备。如图3所示,该装置包括:采集模块210、确定模块220、判断模块230、处理模块240。
[0100]
其中,采集模块210用于采集消息队列的指标数据;确定模块220用于根据所述指标数据,确定所述消息队列的排队时长,以及根据所述排队时长以及所述消息队列对应的优先级信息,确定所述消息队列的处理级别;判断模块230用于若所述处理级别大于或者等于预设处理级别阈值,则确定所述消息队列的消费者的消费能力是否降低;处理模块240用于若确定所述消息队列的消费者的消费能力没有降低,则为所述消息队列进行扩容处理,
以及,若确定所述消息队列的消费者的消费能力降低,则对所述消息队列进行重启处理。
[0101]
其中,消息队列的指标数据可以包括入队量、出队量、积压量、生产者信息、消费者信息等等中的一种或多种。
[0102]
其中,确定模块220具体用于:根据出队量,确定前一分钟的平均每秒出队量,并将平均每秒出队量确定为当前消费速度;将积压量除以当前消费速度,得到排队时长。
[0103]
其中,确定模块220具体还用于:根据预设的消息队列与优先级信息的对应关系,确定消息队列对应的优先级信息;根据以下公式确定处理级别:
[0104]
g=s-(t/k)*w
[0105]
其中,g为处理级别,s为预设原始处理级别,t为排队时长,k为预设参数,w为消息队列对应的优先级信息。
[0106]
其中,判断模块230具体用于:获取消息队列的最近预设次数内的处理级别;当最近预设次数内的处理级别均小于预设处理级别阈值时,则根据处理记录,确定消息队列在第一预设时间内是否进行过处理;若确定消息队列在第一预设时间内没有进行过处理,则根据出队量,确定消息队列的当前消费速度,并确定当前消费速度与预设消费速度峰值之比是否大于预设比例阈值;若确定当前消费速度与预设消费速度峰值之比大于或者等于预设比例阈值,则确定消息队列的消费者的消费能力没有降低;若确定当前消费速度与预设消费速度峰值之比小于预设比例阈值,则确定消息队列的消费者的消费能力降低。
[0107]
在一种可选的方式中,判断模块230具体还用于:根据出队量,确定消息队列的历史出队速度峰值;根据历史出队速度峰值,更新预设消费速度峰值。
[0108]
在一种可选的方式中,处理模块240具体用于:根据处理记录,确定消息队列是否处于扩容状态;若确定消息队列处于扩容状态,则对消息队列进行追加扩容处理;若确定消息队列没有处于扩容状态,则对消息队列进行扩容处理。
[0109]
在一种可选的方式中,处理模块240具体还用于:根据处理记录,确定消息队列在第二预设时间内是否进行过扩容处理或重启处理;若确定消息队列在第二预设时间内没有进行过扩容处理及重启处理,则根据入队量确定消息队列的当前入队速度,并确定当前入队速度是否大于预设入队速度阈值;若确定当前入队速度大于预设入队速度阈值,则对消息队列进行重启处理和扩容处理;若确定当前入队速度小于或者等于预设入队速度阈值,则对消息队列进行重启处理;若确定消息队列在第二预设时间内进行过扩容处理或重启处理,则生成人工介入告警。
[0110]
在一种可选的方式中,该装置还包括展示模块。展示模块具体用于:展示消息队列的指标数据。
[0111]
需要说明的是,本发明实施例提供消息队列处理装置是能够执行上述消息队列处理方法的装置,则上述消息队列处理方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
[0112]
本发明实施例通过采集消息队列的指标数据,根据指标数据,确定消息队列的排队时长,根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别,若处理级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低,若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理,若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理,能够将消息排队时长这一关键
性指标与各消息队列对应业务实时性的差异化要求结合,得到一个合理的消息队列评分,并根据消息队列评分结果,对低分的消息队列进行分析,判断出消息队列是入队量增加或者消费者消费能力降低导致的问题,从而进行相应的处理,能够自动分析消费能力的供需变化来快速定位问题,通过自动化处理重启及扩容来实现快速处理,从而提高消息积压的处理效率,并且,还能够实现基于应用需求的告警及处理机制,并且将这种差异进一步应用在容忍度上,解决了对复杂多样的it应用队列问题的差异化告警及处理,同时利用差异化的应用容忍度配置,实现了异常先于客户感知解决,提升了用户体验。
[0113]
图4示出了本发明实施例提供的计算设备的结构示意图。本发明具体实施例并不对计算设备的具体实现做限定。
[0114]
如图4所示,该计算设备可以包括:处理器(processor)302、通信接口(communications interface)304、存储器(memory)306、以及通信总线308。
[0115]
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如生产者、消费者或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于消息队列处理方法实施例中的相关步骤。
[0116]
具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。
[0117]
处理器302可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0118]
存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0119]
程序310具体可以被处理器302调用使计算设备执行上述实施例中的消息队列处理方法中的操作。
[0120]
本发明实施例通过采集消息队列的指标数据,根据指标数据,确定消息队列的排队时长,根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别,若处理级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低,若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理,若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理,能够将消息排队时长这一关键性指标与各消息队列对应业务实时性的差异化要求结合,得到一个合理的消息队列评分,并根据消息队列评分结果,对低分的消息队列进行分析,判断出消息队列是入队量增加或者消费者消费能力降低导致的问题,从而进行相应的处理,能够自动分析消费能力的供需变化来快速定位问题,通过自动化处理重启及扩容来实现快速处理,从而提高消息积压的处理效率,并且,还能够实现基于应用需求的告警及处理机制,并且将这种差异进一步应用在容忍度上,解决了对复杂多样的it应用队列问题的差异化告警及处理,同时利用差异化的应用容忍度配置,实现了异常先于客户感知解决,提升了用户体验。
[0121]
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在计算设备上运行时,使得计算设备执行上述任意方法实施例中的消息队列处理方法。可执行指令具体可以用于使得计算设备执行上述实施例中的消息队列处理方法中的操作。
[0122]
本发明实施例通过采集消息队列的指标数据,根据指标数据,确定消息队列的排队时长,根据排队时长以及消息队列对应的优先级信息,确定消息队列的处理级别,若处理级别大于或者等于预设处理级别阈值,则确定消息队列的消费者的消费能力是否降低,若确定消息队列的消费者的消费能力没有降低,则为消息队列进行扩容处理,若确定消息队列的消费者的消费能力降低,则对消息队列进行重启处理,能够将消息排队时长这一关键性指标与各消息队列对应业务实时性的差异化要求结合,得到一个合理的消息队列评分,并根据消息队列评分结果,对低分的消息队列进行分析,判断出消息队列是入队量增加或者消费者消费能力降低导致的问题,从而进行相应的处理,能够自动分析消费能力的供需变化来快速定位问题,通过自动化处理重启及扩容来实现快速处理,从而提高消息积压的处理效率,并且,还能够实现基于应用需求的告警及处理机制,并且将这种差异进一步应用在容忍度上,解决了对复杂多样的it应用队列问题的差异化告警及处理,同时利用差异化的应用容忍度配置,实现了异常先于客户感知解决,提升了用户体验。
[0123]
本发明实施例提供一种消息队列处理装置,用于执行上述消息队列处理方法。
[0124]
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使计算设备执行上述任意方法实施例中的消息队列处理方法。
[0125]
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的消息队列处理方法。
[0126]
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0127]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0128]
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0129]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
[0130]
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
[0131]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献