CN115328680A - 消息队列消费异常的辅助方法、装置和电子设备 - Google Patents
消息队列消费异常的辅助方法、装置和电子设备 Download PDFInfo
- Publication number
- CN115328680A CN115328680A CN202211186796.5A CN202211186796A CN115328680A CN 115328680 A CN115328680 A CN 115328680A CN 202211186796 A CN202211186796 A CN 202211186796A CN 115328680 A CN115328680 A CN 115328680A
- Authority
- CN
- China
- Prior art keywords
- message
- consumption
- abnormal
- queue
- attribute information
- 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
Links
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)
Abstract
本发明提供了一种消息队列消费异常的辅助方法、装置和电子设备,包括:接收消费异常消息并对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息。进而根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,实现对消费异常消息的再次处理,其中,延迟队列携带有与次数信息对应的预设时延。该方法通过将消费异常消息提取至辅助装置,并对其进行标准化的后续处理,实现了不同类型的消息队列之间的混合使用。
Description
技术领域
本发明涉及消息队列的技术领域,尤其是涉及一种消息队列消费异常的辅助方法、装置和电子设备。
背景技术
在程序与程序之间进行消息传递时,为保证消息接收端能及时准确的接收消息、处理消息,并且避免由于消息发送端发送的消息过多而导致程序出错,一般会在程序之间引入一个中间装置,即消息队列。进而,通过消息队列对消息发送端发送的大量消息进行缓冲处理和确认处理。
当消息接收端处于空闲状态时,消息接收端会从消息队列中获取当前队列最前端的消息进行处理,并在处理完成后,向消息队列反馈已经处理完成的确认信息。而后,消息队列会将队列中最前端的消息移除,从而完成此次消息处理。如果消息接收端的消息处理失败,该消息接收端同样会反馈消息队列处理失败的确认信息。而后,消息队列会将该消息延迟一定的时间后重新进行处理。
正是由于上述处理失败的消息并不会从消息队列内移除,导致消息队列内的消息阻塞。因此,需要将上述处理失败的消息移除出本消息队列并加入至新的队列内进行重新处理。但是,处理失败的消费异常消息不能马上进行二次处理(马上进行二次处理的结果大概率也是失败,所以需要延迟处理),这就要求新的队列支持延迟特性。但现有的不同品牌的消息队列中间装置对延迟队列的支持方式不统一,有的繁琐复杂,有的影响装置性能,有的根本就无法支持延迟特性,极大的影响了消息队列的选型标准。因此,如何在实现对处理失败的消息进行延迟处理的同时,支持多种消息队列的混合使用成为目前亟待解决的技术问题。
综上,现有的消息队列选型标准不同,存在无法实现多种类型的消息队列混合使用的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种消息队列消费异常的辅助方法、装置和电子设备,以缓解现有的消息队列选型标准不同,存在无法实现多种类型的消息队列混合使用的技术问题。
第一方面,本发明实施例提供了一种消息队列消费异常的辅助方法,应用于消息队列消费异常的辅助装置,包括:
接收消费异常消息,其中,所述消费异常消息携带有与其对应的消息队列的属性信息;
对所述消费异常消息进行分析,得到所述消费异常消息中包含的所述属性信息和所述消费异常消息进入所述辅助装置的次数信息;
根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,以使所述死信处理器通知人工对所述消费异常消息进行处理,或,所述延迟队列在达到预设时延后发送所述消费异常消息至与所述属性信息对应的消息队列,进而通过所述消息队列对所述消费异常消息进行再次处理,其中,所述延迟队列携带有与所述次数信息对应的预设时延。
进一步的,根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,包括:
判断所述次数信息是否小于所述辅助装置的预设次数阈值;
若所述次数信息小于所述预设次数阈值,则根据所述属性信息和所述次数信息将所述消费异常消息分配至与所述属性信息和所述次数信息对应的延迟队列;
若所述次数信息不小于所述预设次数阈值,则将所述消费异常消息分配至所述辅助装置的死信处理器。
进一步的,在接收消费异常消息之前,所述方法还包括:
获取多个所述消息队列的地址,并根据每个所述消息队列的地址分别建立与所述辅助装置对应的消息传输连接。
进一步的,所述预设次数阈值和所述延迟队列携带的与所述次数信息对应的预设时延为通过所述辅助装置提供的API接口设置的。
进一步的,所述属性信息至少包括以下任一种:所述消息队列的地址、所述消息队列的品牌、所述消息队列的主题。
进一步的,所述死信处理器通知人工对所述消费异常消息进行处理的通知方式包括以下任一种:邮件通知、短信通知、死信处理器的API地址通知。
第二方面,本发明实施例还提供了一种消息队列消费异常的辅助装置,包括:
接收模块,用于接收消费异常消息,其中,所述消费异常消息携带有与其对应的消息队列的属性信息;
分析模块,用于对所述消费异常消息进行分析,得到所述消费异常消息中包含的所述属性信息和所述消费异常消息进入所述辅助装置的次数信息;
分配模块,用于根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,以使所述死信处理器通知人工对所述消费异常消息进行处理,或,所述延迟队列在达到预设时延后发送所述消费异常消息至与所述属性信息对应的消息队列,进而通过所述消息队列对所述消费异常消息进行再次处理,其中,所述延迟队列携带有与所述次数信息对应的预设时延。
进一步的,所述分配模块还用于:判断所述次数信息是否小于所述辅助装置的预设次数阈值;若所述次数信息小于所述预设次数阈值,则根据所述属性信息和所述次数信息将所述消费异常消息分配至与所述属性信息和所述次数信息对应的延迟队列;若所述次数信息不小于所述预设次数阈值,则将所述消费异常消息分配至所述辅助装置的死信处理器。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。
在本发明实施例中,提供了一种消息队列消费异常的辅助方法,应用于消息队列消费异常的辅助装置,包括:接收消费异常消息,其中,消费异常消息携带有与其对应的消息队列的属性信息;对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息;根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,进而通过消息队列对消费异常消息进行再次处理,其中,延迟队列携带有与次数信息对应的预设时延。通过上述描述可知,本发明的消息队列消费异常的辅助方法通过将消息队列内的消费异常消息提取至辅助装置,并利用辅助装置分析消费异常消息中包含的属性信息和进入辅助装置的次数信息,进而根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,实现了对消费异常消息的重新处理。该方法通过将消息队列内的消费异常消息提取至辅助装置,避免了消费异常消息对消息队列造成阻塞,并且,通过对消费异常消息的后续处理机制进行了统一标准化的处理,降低了消息队列在业务设计上的系统复杂度,实现了不同类型的消息队列之间的混合使用,有效缓解了现有的消息队列因选型标准不同导致的无法实现多种类型的消息队列混合使用的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种消息队列消费异常的辅助方法的流程图;
图2为本发明实施例提供的分配消费异常消息的方法流程图;
图3为本发明实施例提供的一种消息队列消费异常的辅助方法的消息交互的流程图;
图4为本发明实施例提供的一种消息队列消费异常的辅助装置的示意图;
图5为本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
程序之间进行消息传递时,消息接收端会在空闲状态时从消息队列中获取当前队列最前端的消息进行处理,并在处理完成后,向消息队列反馈处理完成的确认信息,进而消息队列将处理完成的消息从最前端移除,最终完成此次消息处理。如果消息接收端处理消息失败,同样会反馈消息队列处理失败的确认信息,进而等待一段时间后重新处理。但正是由于该场景的出现,使得处理失败的消息因未能从消息队列内移除,进而导致消息队列的阻塞。因此,处理失败的消息必须加入至新的能够支持延迟特性的延迟队列(延迟队列是消息队列的一种存在形式,特点是延迟队列中的消息不会马上被消费处理,而是等待一个设定的时延后在进行处理)。
但是,现存的不同品牌的消息队列对延迟队列的支持方式不统一,有的繁琐复杂,有的影响装置性能,有的不支持延迟队列,极大的影响了消息队列的选型标准。基于此,本发明提供了一种消息队列消费异常的辅助方法来处理消息处理失败后的延迟队列,该方法可以同时支持多种类型的消息队列的混合使用。并且使用该方法后,关注点可以放在消息队列的主要功能上,不在因为消息队列不支持延迟队列而放弃该消息队列的选择。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种消息队列消费异常的辅助方法进行详细介绍。
实施例一:
根据本发明实施例,提供了一种消息队列消费异常的辅助方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种消息队列消费异常的辅助方法的流程图,如图1所示,该方法应用于消息队列消费异常的辅助装置,包括如下步骤:
步骤S102,接收消费异常消息,其中,消费异常消息携带有与其对应的消息队列的属性信息;
具体的,程序之间进行消息传递时,首先由消息发送端发送消息至消息队列,进而,消息接收端在空闲状态时从消息队列中获取当前队列最前端的消息进行处理。如果消息接收端处理消息失败,消息接收端将反馈消息队列该消息处理失败的确认信息,进而发送处理失败的消息(即消费异常消息)至消息队列消费异常的辅助装置。其中,由于不同品牌的消息队列的类型不同,为了实现消息队列消费异常的辅助装置能够区分不同品牌消息队列对应的消费异常消息,消息接收端向辅助装置发送的消费异常消息携带有与其对应的消息队列的属性信息。
步骤S104,对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息;
具体的,由于实现本实施例的消息队列消费异常的辅助装置能够同时辅助多种类型的消息队列,因此该辅助装置可以接收多种消息队列对应的消息接收端发送的消费异常消息。在辅助装置接收到消费异常消息后,首先利用次数分析器对接收到的消费异常消息进行分析,从而得到消费异常消息中包含的与其对应的消息队列的属性信息以及消费异常消息反复进行辅助装置的次数信息。基于此,实现后续辅助装置对接收到的不同的消费异常消息隔离进行处理。
步骤S106,根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,进而通过消息队列对消费异常消息进行再次处理,其中,延迟队列携带有与次数信息对应的预设时延。
具体的,次数分析器分析出消费异常消息所对应的属性信息和次数信息后,进一步根据次数信息判断消费异常消息是否分配至死信处理器。若判断出需分配消费异常消息至死信处理器,死信处理器将在接收到消费异常消息时,通知人工对消费异常消息进行后续处理。若判断出需分配消费异常消息至消息队列,则需进一步根据属性信息和次数信息,将消费异常消息分配至与属性信息和次数信息相对应的延迟队列进行等待,其中,该延迟队列携带有与次数信息对应的预设时延。进一步的,通过延迟队列处理器对接收到消费异常消息的延迟队列的预设时延进行监控,并在达到预设时延后反向发送消费异常消息至与属性信息对应的消息队列。最后,消息队列将重新发送该消费异常消息至空闲的消息接收端,从而实现对消费异常消息的重新处理。
若重新处理后,该消费异常消息仍未能处理成功,则重复前述步骤重新对该消费异常消息进行辅助处理,直至该消费异常消息处理成功或进入死信处理器后通知人工处理。
在本发明实施例中,提供了一种消息队列消费异常的辅助方法,应用于消息队列消费异常的辅助装置,包括:接收消费异常消息,其中,消费异常消息携带有与其对应的消息队列的属性信息;对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息;根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,进而通过消息队列对消费异常消息进行再次处理,其中,延迟队列携带有与次数信息对应的预设时延。通过上述描述可知,本发明的消息队列消费异常的辅助方法通过将消息队列内的消费异常消息发送至辅助装置,并利用辅助装置分析消费异常消息中包含的属性信息和进入辅助装置的次数信息,进而根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,实现了对消费异常消息的重新处理。该方法通过将消息队列内的消费异常消息提取至辅助装置,避免了消费异常消息对消息队列造成阻塞,并且,通过对消费异常消息的后续处理机制进行了统一标准化的处理,降低了消息队列在业务设计上的系统复杂度,实现了不同类型的消息队列之间的混合使用,有效缓解了现有的消息队列因选型标准不同导致的无法实现多种类型的消息队列混合使用的技术问题。
上述内容对本发明的异常操作的检测方法进行了简要介绍,下面对其中涉及到的具体内容进行详细描述。
在本发明的一个可选实施例中,参考图2,根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,包括:
步骤S201,判断次数信息是否小于辅助装置的预设次数阈值;
具体的,次数分析器分析出消费异常消息所对应的属性信息和次数信息后,主要通过判断次数信息是否小于辅助装置的预设次数阈值,实现对消费异常消息是否分配至死信处理器的判断。
步骤S202,若次数信息小于预设次数阈值,则根据属性信息和次数信息将消费异常消息分配至与属性信息和次数信息对应的延迟队列;
具体的,若次数分析器判断次数信息小于辅助装置的预设次数阈值,则根据消费异常消息的属性信息和次数信息发送消费异常消息至与其包含的属性信息和次数信息相对应的延迟队列,进而通过延迟队列实现对消费异常消息的后续处理。
步骤S203,若次数信息不小于预设次数阈值,则将消费异常消息分配至辅助装置的死信处理器。
具体的,若次数分析器判断次数信息大于或等于辅助装置的预设次数阈值,则发送消费异常消息至与死信处理器,进而通过死信处理器通知人工对消费异常消息的后续处理。
在本发明的一个可选实施例中,在接收消费异常消息之前,该方法还包括:
获取多个消息队列的地址,并根据每个消息队列的地址分别建立与辅助装置对应的消息传输连接。
具体的,由于实现本实施例消息队列消费异常的辅助方法的辅助装置能够同时处理多种类型的消息队列,因此在处理不同类型的消息队列之前,需要获取每个消息队列的注册地址,并根据每个消息队列的注册地址分别建立与辅助装置对应的消息传输连接。基于此,实现后续辅助装置内的延迟队列反向发送消费异常消息至与其属性信息相对应的消息队列。
在本发明的一个可选实施例中,预设次数阈值和延迟队列携带的与次数信息对应的预设时延为通过辅助装置提供的API接口设置的。
具体的,当消息接收端的消息处理失败时,如果立即重新对处理失败的消费异常消息进行二次处理,大概率还会处理失败。因此,消息接收端发送消费异常消息至新的延迟队列时,需要在延迟队列内加入延迟重试机制,即对延迟队列设置时延。本实施例中的延迟队列的预设时延为用户通过辅助装置提供的API接口配置的,其中,具体预设时延的设置一般与消费异常消息反复进入辅助装置的次数信息相对应。
在实际应用中,一般有经验的用户会根据消费异常消息反复进入辅助装置的次数对应配置类似5S、10S、20S、50S此类递增的时延,并根据不同的时延建立不用的延迟队列,从而保证不用延迟队列处理不同的时延。例如,消息接收端的消息第一次处理失败时,次数分析器分析出此次的消费异常消息为首次进入辅助装置,次数分析器便会将该消费异常消息分配至与其属性信息相同的预设时延为5S的延迟队列。当5S后返回该消费异常消息至消息队列等待重新处理后,消息接收端第二次处理失败,次数分析器便会将该消费异常消息分配至与其属性信息相同的预设时延为10S的延迟队列。以此类推,直至该消费异常消息反复进入辅助装置的次数信息达到辅助装置的预设次数阈值后,次数分析器将该消费异常消息分配至死信处理器,并通知人工进行处理。其中,值得注意的是,本实施例中次数分析器判断是否分配消费异常消息分配至死信处理器所依据的预设次数阈值,同样是用户可以根据实际需求通过辅助装置提供的API接口进行设置的。
在本发明的一个可选实施例中,属性信息至少包括以下任一种:消息队列的地址、消息队列的品牌、消息队列的主题。
具体的,参考图3,本实施例的消息队列消费异常的辅助方法中,为了区分接收到的消费异常消息与辅助装置连接的多种消息队列的对应关系,消息接收端向辅助装置发送的消费异常消息携带有与其对应的消息队列的属性信息,其中,属性信息至少包括以下任一种:消息队列的地址、消息队列的品牌、消息队列的主题。此后,次数分析器实现根据属性信息和次数信息将消费异常消息分配至与属性信息和次数信息对应的延迟队列时,需要首先确认属性信息包含的具体内容,而后根据具体内容和次数信息实现对消费异常消息的分配。
以属性信息包含消息队列的品牌和消息队列的主题为例:次数分析器分析出消费异常消息携带的消息队列的品牌和消息队列的主题后,首先根据消息队列的品牌确定出辅助装置内可以实现与该品牌对应的消息队列进行消息传输的延迟队列组,进而根据消息队列的主题在上述品牌对应的延迟队列组内确定出与主题对应的延迟队列组,最后根据次数信息在主题对应的延迟队列组内确定出携带有与次数信息对应的预设时延的延迟队列,并发送消费异常消息至最终确定出的延迟队列。
在本发明的一个可选实施例中,死信处理器通知人工对消费异常消息进行处理的通知方式包括以下任一种:邮件通知、短信通知、死信处理器的API地址通知。
具体的,死信处理器通知人工处理消费异常消息时,采用的通知方式有很多种,包括:利用辅助装置配置的邮件服务器实现邮件通知,或短信通知,以及处理消费异常消息的死信处理器的API地址通知等。
本发明的消息队列消费异常的辅助方法,通过将消息队列内的消费异常消息提取至辅助装置,避免了消费异常消息对消息队列造成的阻塞。并且,该方法通过对消费异常消息的后续处理机制进行了统一标准化的处理,降低了消息队列在业务设计上的系统复杂度,实现了不同类型的消息队列之间的混合使用。从而在程序间进行消息传输过程时,业务设计的关注点可以放在目标消息队列的主要功能上,无需因消息队列无法支持延迟队列而放弃对目标消息队列的选择。同时,辅助装置可以为用户提供API接口实现对死信处理器、次数分析器、时延队列在内的处理逻辑的自定义,极大的增加了装置的扩展性,也为扩大生产提供了可能。
实施例二:
本发明实施例还提供了一种消息队列消费异常的辅助装置,该消息队列消费异常的辅助装置主要用于执行本发明实施例一中所提供的消息队列消费异常的辅助方法,以下对本发明实施例提供的消息队列消费异常的辅助装置做具体介绍。
图4是根据本发明实施例的一种消息队列消费异常装置的示意图,如图4所示,该装置主要包括:接收模块10、分析模块20和分配模块30,其中:
接收模块,用于接收消费异常消息,其中,消费异常消息携带有与其对应的消息队列的属性信息;
分析模块,用于对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息;
分配模块,用于根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,进而通过消息队列对消费异常消息进行再次处理,其中,延迟队列携带有与次数信息对应的预设时延。
在本发明实施例中,提供了一种消息队列消费异常的辅助装置,包括:接收消费异常消息,其中,消费异常消息携带有与其对应的消息队列的属性信息;对消费异常消息进行分析,得到消费异常消息中包含的属性信息和消费异常消息进入辅助装置的次数信息;根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,以使死信处理器通知人工对消费异常消息进行处理,或,延迟队列在达到预设时延后发送消费异常消息至与属性信息对应的消息队列,进而通过消息队列对消费异常消息进行再次处理,其中,延迟队列携带有与次数信息对应的预设时延。通过上述描述可知,本发明的消息队列消费异常的辅助方法通过将消息队列内的消费异常消息提取至辅助装置,并利用辅助装置分析消费异常消息中包含的属性信息和进入辅助装置的次数信息,进而根据属性信息和次数信息将消费异常消息分配至辅助装置的死信处理器或与属性信息和次数信息对应的延迟队列,实现了对消费异常消息的重新处理。该方法通过将消息队列内的消费异常消息提取至辅助装置,避免了消费异常消息对消息队列造成阻塞,并且,通过对消费异常消息的后续处理机制进行了统一标准化的处理,降低了消息队列在业务设计上的系统复杂度,实现了不同类型的消息队列之间的混合使用,有效缓解了现有的消息队列因选型标准不同导致的无法实现多种类型的消息队列混合使用的技术问题。
可选地,分配模块还用于:判断次数信息是否小于辅助装置的预设次数阈值;若次数信息小于预设次数阈值,则根据属性信息和次数信息将消费异常消息分配至与属性信息和次数信息对应的延迟队列;若次数信息不小于预设次数阈值,则将消费异常消息分配至辅助装置的死信处理器。
可选地,该装置还用于:获取多个所述消息队列的地址,并根据每个消息队列的地址分别建立与其对应的消息传输连接。
可选地,预设次数阈值和延迟队列携带的与次数信息对应的预设时延为通过辅助装置提供的API接口设置的。
可选地,属性信息至少包括以下任一种:消息队列的地址、消息队列的品牌、消息队列的主题。
可选地,死信处理器通知人工对消费异常消息进行处理的通知方式包括以下任一种:邮件通知、短信通知、所述死信处理器的API地址通知。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图5所示,本申请实施例提供的一种电子设备600,包括:处理器601、存储器602和总线,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线通信,所述处理器601执行所述机器可读指令,以执行如上述异常操作的检测方法的步骤。
具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述消息队列消费异常的辅助方法。
处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
对应于上述消息队列消费异常的辅助方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述消息队列消费异常的辅助方法的步骤。
本申请实施例所提供的消息队列消费异常的辅助装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种消息队列消费异常的辅助方法,应用于消息队列消费异常的辅助装置,其特征在于,包括:
接收消费异常消息,其中,所述消费异常消息携带有与其对应的消息队列的属性信息;
对所述消费异常消息进行分析,得到所述消费异常消息中包含的所述属性信息和所述消费异常消息进入所述辅助装置的次数信息;
根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,以使所述死信处理器通知人工对所述消费异常消息进行处理,或,所述延迟队列在达到预设时延后发送所述消费异常消息至与所述属性信息对应的消息队列,进而通过所述消息队列对所述消费异常消息进行再次处理,其中,所述延迟队列携带有与所述次数信息对应的预设时延。
2.根据权利要求1所述的方法,其特征在于,根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,包括:
判断所述次数信息是否小于所述辅助装置的预设次数阈值;
若所述次数信息小于所述预设次数阈值,则根据所述属性信息和所述次数信息将所述消费异常消息分配至与所述属性信息和所述次数信息对应的延迟队列;
若所述次数信息不小于所述预设次数阈值,则将所述消费异常消息分配至所述辅助装置的死信处理器。
3.根据权利要求1所述的方法,其特征在于,在接收消费异常消息之前,所述方法还包括:
获取多个所述消息队列的地址,并根据每个所述消息队列的地址分别建立与所述辅助装置对应的消息传输连接。
4.根据权利要求2所述的方法,其特征在于,所述预设次数阈值和所述延迟队列携带的与所述次数信息对应的预设时延为通过所述辅助装置提供的API接口设置的。
5.根据权利要求1所述的方法,其特征在于,所述属性信息至少包括以下任一种:所述消息队列的地址、所述消息队列的品牌、所述消息队列的主题。
6.根据权利要求1所述的方法,其特征在于,所述死信处理器通知人工对所述消费异常消息进行处理的通知方式包括以下任一种:邮件通知、短信通知、所述死信处理器的API地址通知。
7.一种消息队列消费异常的辅助装置,其特征在于,包括:
接收模块,用于接收消费异常消息,其中,所述消费异常消息携带有与其对应的消息队列的属性信息;
分析模块,用于对所述消费异常消息进行分析,得到所述消费异常消息中包含的所述属性信息和所述消费异常消息进入所述辅助装置的次数信息;
分配模块,用于根据所述属性信息和所述次数信息将所述消费异常消息分配至所述辅助装置的死信处理器或与所述属性信息和所述次数信息对应的延迟队列,以使所述死信处理器通知人工对所述消费异常消息进行处理,或,所述延迟队列在达到预设时延后发送所述消费异常消息至与所述属性信息对应的消息队列,进而通过所述消息队列对所述消费异常消息进行再次处理,其中,所述延迟队列携带有与所述次数信息对应的预设时延。
8.根据权利要求7所述的装置,其特征在于,所述分配模块还用于:
判断所述次数信息是否小于所述辅助装置的预设次数阈值;若所述次数信息小于所述预设次数阈值,则根据所述属性信息和所述次数信息将所述消费异常消息分配至与所述属性信息和所述次数信息对应的延迟队列;若所述次数信息不小于所述预设次数阈值,则将所述消费异常消息分配至所述辅助装置的死信处理器。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186796.5A CN115328680B (zh) | 2022-09-28 | 2022-09-28 | 消息队列消费异常的辅助方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186796.5A CN115328680B (zh) | 2022-09-28 | 2022-09-28 | 消息队列消费异常的辅助方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328680A true CN115328680A (zh) | 2022-11-11 |
CN115328680B CN115328680B (zh) | 2023-01-31 |
Family
ID=83913355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211186796.5A Active CN115328680B (zh) | 2022-09-28 | 2022-09-28 | 消息队列消费异常的辅助方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328680B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040177108A1 (en) * | 2003-02-03 | 2004-09-09 | Connelly Jon Christopher | Method and apparatus and program for scheduling and executine events in real time over a network |
CN110224922A (zh) * | 2019-05-21 | 2019-09-10 | 成都路行通信息技术有限公司 | 一种基于RabbitMQ的异步消息重试方法、系统及系统构建方法 |
CN111158934A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 基于缓冲队列接收数据实现不同级别延迟拼接方法和装置 |
CN111314422A (zh) * | 2020-01-17 | 2020-06-19 | 平安医疗健康管理股份有限公司 | 基于kafka的消息处理方法、系统、存储介质及计算机设备 |
CN111510349A (zh) * | 2020-04-09 | 2020-08-07 | 上海东普信息科技有限公司 | 业务异常检测和告警方法、装置、设备及存储介质 |
CN111782414A (zh) * | 2020-05-12 | 2020-10-16 | 北京皮尔布莱尼软件有限公司 | 一种延时消息处理方法及系统 |
CN112104519A (zh) * | 2020-08-06 | 2020-12-18 | 北京健康之家科技有限公司 | 延迟消息的投递方法及装置、存储介质、计算机设备 |
CN113542113A (zh) * | 2021-07-13 | 2021-10-22 | 浪潮云信息技术股份公司 | 一种基于RabbitMQ处理延迟任务的方法及工具 |
CN114138506A (zh) * | 2021-11-08 | 2022-03-04 | 广州华多网络科技有限公司 | 消息队列调度方法及其装置、设备、介质、产品 |
CN114237823A (zh) * | 2021-12-17 | 2022-03-25 | 深圳壹账通创配科技有限公司 | 消息队列的异常处理方法、装置、计算机设备及存储介质 |
CN114741167A (zh) * | 2022-03-09 | 2022-07-12 | 博思数采科技发展有限公司 | 基于消息队列的分布式定时任务调度方法及系统 |
-
2022
- 2022-09-28 CN CN202211186796.5A patent/CN115328680B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040177108A1 (en) * | 2003-02-03 | 2004-09-09 | Connelly Jon Christopher | Method and apparatus and program for scheduling and executine events in real time over a network |
CN110224922A (zh) * | 2019-05-21 | 2019-09-10 | 成都路行通信息技术有限公司 | 一种基于RabbitMQ的异步消息重试方法、系统及系统构建方法 |
CN111158934A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 基于缓冲队列接收数据实现不同级别延迟拼接方法和装置 |
CN111314422A (zh) * | 2020-01-17 | 2020-06-19 | 平安医疗健康管理股份有限公司 | 基于kafka的消息处理方法、系统、存储介质及计算机设备 |
CN111510349A (zh) * | 2020-04-09 | 2020-08-07 | 上海东普信息科技有限公司 | 业务异常检测和告警方法、装置、设备及存储介质 |
CN111782414A (zh) * | 2020-05-12 | 2020-10-16 | 北京皮尔布莱尼软件有限公司 | 一种延时消息处理方法及系统 |
CN112104519A (zh) * | 2020-08-06 | 2020-12-18 | 北京健康之家科技有限公司 | 延迟消息的投递方法及装置、存储介质、计算机设备 |
CN113542113A (zh) * | 2021-07-13 | 2021-10-22 | 浪潮云信息技术股份公司 | 一种基于RabbitMQ处理延迟任务的方法及工具 |
CN114138506A (zh) * | 2021-11-08 | 2022-03-04 | 广州华多网络科技有限公司 | 消息队列调度方法及其装置、设备、介质、产品 |
CN114237823A (zh) * | 2021-12-17 | 2022-03-25 | 深圳壹账通创配科技有限公司 | 消息队列的异常处理方法、装置、计算机设备及存储介质 |
CN114741167A (zh) * | 2022-03-09 | 2022-07-12 | 博思数采科技发展有限公司 | 基于消息队列的分布式定时任务调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115328680B (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111786886B (zh) | 一种消息处理方法、装置、系统、电子设备及存储介质 | |
CN101510167B (zh) | 一种插件运行的方法、装置及系统 | |
EP3489825A1 (en) | Method, apparatus and computer readable storage medium for processing service | |
CN107341062B (zh) | 一种数据推送方法、装置、设备以及存储介质 | |
CN108833205B (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN110471749B (zh) | 任务处理方法、装置、计算机可读存储介质和计算机设备 | |
CN109361542B (zh) | 客户端的故障处理方法、装置、系统、终端和服务器 | |
CN115037721A (zh) | 从机地址分配方法、装置、通信地址获取方法及装置 | |
CN108170551B (zh) | 基于爬虫系统的前后端错误处理方法、服务器及存储介质 | |
CN109614245A (zh) | 消息中间件的消息传递方法、装置、电子设备及存储介质 | |
CN107239325B (zh) | 单证数据处理方法和装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN116016653A (zh) | 区块链的信息推送方法、装置、电子设备和存储介质 | |
CN115328680B (zh) | 消息队列消费异常的辅助方法、装置和电子设备 | |
CN112114938A (zh) | 事务处理方法、装置及服务器 | |
CN108306815A (zh) | 一种获取消息的方法、装置、设备及计算机可读存储介质 | |
CN112612631A (zh) | 一种消息队列堆积检测方法以及相关装置 | |
CN109067864B (zh) | 通知消息推送方法、装置及电子设备 | |
WO2023116701A1 (zh) | 基于物联网平台的数据信息推送方法、装置、设备及介质 | |
CN115766632A (zh) | 一种异常系统预警补偿方法、系统、电子设备及存储介质 | |
CN114706697A (zh) | 消息订阅事件的处理方法、装置、设备、介质及程序产品 | |
CN115220993A (zh) | 进程监控方法、装置、车辆及存储介质 | |
CN110008010B (zh) | 系统调用方法、装置、设备及可读存储介质 | |
CN113596123A (zh) | 软件下载方法、通信设备及存储介质 | |
CN112383609B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |