CN113986601B - 消费信息查询方法及装置、存储介质及电子设备 - Google Patents

消费信息查询方法及装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113986601B
CN113986601B CN202111608271.1A CN202111608271A CN113986601B CN 113986601 B CN113986601 B CN 113986601B CN 202111608271 A CN202111608271 A CN 202111608271A CN 113986601 B CN113986601 B CN 113986601B
Authority
CN
China
Prior art keywords
consumption
information
message
abnormal
consumption 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.)
Active
Application number
CN202111608271.1A
Other languages
English (en)
Other versions
CN113986601A (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.)
Feihu Information Technology Tianjin Co Ltd
Original Assignee
Feihu Information Technology Tianjin Co 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 Feihu Information Technology Tianjin Co Ltd filed Critical Feihu Information Technology Tianjin Co Ltd
Priority to CN202111608271.1A priority Critical patent/CN113986601B/zh
Publication of CN113986601A publication Critical patent/CN113986601A/zh
Application granted granted Critical
Publication of CN113986601B publication Critical patent/CN113986601B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种消费信息查询方法及装置、存储介质及电子设备,该方法包括:当业务***的消息中间件接收到运维平台的信息查询请求时,向对应的消费端发送信息获取请求,接收消费端响应于信息获取请求所确定的当前消费信息和异常消费信息,当前消费信息包括消费端存储的每个正在消费的消息对应的过程消费记录,异常消费信息包括消费端存储的每个消费异常的消息对应的异常消费记录;将当前消费信息和异常消费信息发送至运维平台,以使运维平台基于当前消费信息和异常消费信息,向用户反馈消费端的消费信息。应用本发明的方法,用户可方便快捷地获取消费端的消费信息以定位异常原因,无需人工在服务器上查找异常数据,可减少工作量,提高效率。

Description

消费信息查询方法及装置、存储介质及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种消费信息查询方法及装置、存储介质及电子设备。
背景技术
在现有的***架构中,消息中间件是常用的组件之一,通常由生产端向消息中间件生产消息,由消费端从消息中间件中获取消息进行消费。
在实际的消息消费过程中,常常会出现一些影响业务流程的异常情况,例如产生大量消息无法及时消费的消费堆积,抑或是消费端由于业务异常或网络抖动等原因导致无法成功消费消息的消费异常等等。此时,运维人员则需要定位出现异常情况的原因。
目前,运维人员通常是到服务器上查看运行日志或是查看线程堆栈中的数据信息,进行异常定位。而服务器上的数据量极大,人工查找异常数据的工作量较大,定位的难度亦较高,需要消耗大量的时间,使得定位异常的效率较低。
发明内容
有鉴于此,本发明实施例提供了一种消费信息查询方法,以解决人工查找异常数据,工作量较大、耗时长,工作效率较低的问题。
本发明实施例还提供了一种消费信息查询装置,用以保证上述方法实际中的实现及应用。
为实现上述目的,本发明实施例提供如下技术方案:
一种消费信息查询方法,包括:
当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息。
上述的方法,可选的,所述向所述信息查询请求对应的消费端发送信息获取请求,包括:
调用所述消息中间件的通信模块中预设的远程请求指令,基于所述远程请求指令向所述消费端发送所述信息获取请求。
上述的方法,可选的,所述消费端存储正在消费的消息所对应的过程消费记录的过程,包括:
当所述消费端需要对各个待消费消息中的目标消息进行消费处理时,确定所述目标消息对应的目标消费信息,所述目标消费信息包括所述目标消息对应的消息标识、消费线程和消费时间;
对所述目标消息进行消费处理,并在对所述目标消息进行消费处理的过程中,将所述目标消费消息作为所述目标消息对应的过程消费记录进行存储。
上述的方法,可选的,所述消费端存储消费异常的消息所对应的异常消费记录的过程,包括:
当所述目标消息的消费处理过程结束后,判断所述消费端是否已成功消费所述目标消息;
若所述消费端未成功消费所述目标消息,则确定所述目标消息对应的异常信息,所述异常信息包括所述消息标识、所述消费线程、所述消费时间和所述目标消息对应的堆栈标识;
将所述目标消息确定为消费异常的消息,并将所述异常信息作为所述目标消息对应的异常消费记录进行存储。
上述的方法,可选的,还包括:
当所述目标消息的消费处理过程结束后,将已存储的所述目标消息对应的过程消费记录删除。
上述的方法,可选的,所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息,包括:
响应于所述用户对所述消费端的线程状态进行查询的操作,基于所述当前消费信息,确定当前正在消费消息的各个线程;
确定每个所述线程对应的线程信息,每个所述线程信息包括其对应线程的堆栈信息、线程状态、消费开始时间和消息标识列表;
在所述运维平台的前端界面中显示各个所述线程信息。
上述的方法,可选的,所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息,包括:
响应于所述用户对所述消费端的异常状态进行查询的操作,基于所述异常消费信息,确定所述消费端对应的各个异常堆栈;
确定每个所述异常堆栈对应的堆栈异常信息,每个所述堆栈异常信息包括其对应异常堆栈的堆栈信息、异常时间和异常消息标识列表;
在所述运维平台的前端界面中显示各个所述堆栈异常信息。
一种消费信息查询装置,包括:
第一发送单元,用于当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收单元,用于接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
第二发送单元,用于将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息。
一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的消费信息查询方法。
一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的消费信息查询方法。
基于上述本发明实施例提供的一种消费信息查询方法,包括:当业务***的消息中间件接收到用户通过运维平台发送的信息查询请求时,向对应的消费端发送信息获取请求,并接收该消费端确定的当前消费信息和异常消费信息,所述当前消费信息包括该消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括该消费端存储的每个消费异常的消息对应的异常消费记录。将所述当前消费信息和异常消费信息发送至运维平台,以使运维平台基于所述当前消费信息和异常消费信息,向用户反馈该消费端的消费信息。应用本发明实施例提供的方法,运维人员可以通过运维平台查询消费端的消费信息,可以远程实时获取消费端正在消费的消息所对应的消费信息和消费异常的消息所对应的消费信息,可以方便快捷地获取消费信息,对异常原因进行快速定位,而无需运维人员在服务器上的大量数据中,人工查找异常数据,可节省运维人员的工作量,减少异常定位过程的时间消耗,提高效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种消费信息查询方法的方法流程图;
图2为本发明实施例提供的一种消费信息查询方法的简要流程示意图;
图3为本发明实施例提供的一种消费信息查询方法中的请求流程示意图;
图4为本发明实施例提供的一种消费信息查询方法的又一方法流程图;
图5为本发明实施例提供的一种消费信息查询装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,当消费端遇到消费堆积或消费异常等状况时,会影响正常的业务流程。若要解决问题,首先需要定位堆积或异常的原因,而定位这些问题的原因,运维人员往往需要到服务器上查看日志或查看线程堆栈,定位的难度较高,需要耗费大量时间。
因此,本发明实施例提供了一种消费信息查询方法,通过消息中间件获取消费端预先存储的消费信息,向用户反馈,用户可远程查询消费端的消费信息,有利于用户对消费端的异常数据进行定位,减少用户的工作量,提高效率。
本发明实施例提供了一种消费信息查询方法,所述方法可应用于业务***的消息中间件,其执行主体可以为所述消息中间件的处理器,所述方法的方法流程图如图1所示,包括:
S101:当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
本发明实施例提供的方法中,用户可以通过运维平台前端查询某一消费端的消费信息。运维平台可与消费端所在业务***的消息中间件进行通信,运维平台响应于用户的查询操作,可向该消息中间件发送信息查询请求。而当消息中间件接收到该请求时,则向对应的消费端发送信息获取请求。
本发明实施例提供的方法中所述的消息中间件可以是分布式消息中间件,如阿里巴巴开源的分布式消息中间件RocketMQ。运维平台可以是针对消息中间件的服务平台,如搜狐开源的RocketMQ监控运维平台MQCloud。
需要说明的是,本发明实施例提供的方法中所述的业务***指的是一个***架构,其中可以包含分布式部署的多个消费端,分布式部署的多个生产端和分布式的消息中间件,各个生产端生产的消息推送至该消息中间件,而各个消费端则从该消息中间件获取消息进行消费,每个消费端和每个生产端分别也可以为一个具体的***。本发明实施例提供的查询过程,是对业务***中的某一个消费端进行查询的过程,在具体的应用过程中,用户可以对业务***中的任意一个消费端进行查询。
S102:接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
本发明实施例提供的方法中,当消费端接收到消息中间件发送的信息获取请求时,可根据其预先存储的消费记录,确定该消费端对应的当前消费信息和异常消费信息,并将所述当前消费信息和异常消费信息发送给消息中间件。
本发明实施例提供的方法中,可以通过内嵌软件开发工具包(SoftwareDevelopment Kit,SDK)的方式,使消费端对消费的消息进行数据统计,存储每个正在消费的消息的过程消费记录,可以包括消费该消息的线程信息等等。而对于每个消费异常的消息,亦记录其对应的异常消费记录,可以包括消费该消息的线程信息和堆栈信息等等。过程消费记录和异常消费记录,可以存储在消费端的Java虚拟机(Java Virtual Machine,JVM)的内存中。
S103:将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息。
本发明实施例提供的方法中,当消息中间件接收到消费端发送的当前消费信息和异常消费信息后,可将所述当前消费信息和异常消费信息发送给运维平台,运维平台可基于所述当前消费信息和异常消费信息,按照预设的数据显示策略,向用户反馈该消费端对应的消费信息。
基于本发明实施例提供的方法,当业务***的消息中间件接收到运维平台发送的信息查询请求时,向对应的消费端发送信息获取请求,并接收该消费端确定的当前消费信息和异常消费信息,所述当前消费信息包括该消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括该消费端存储的每个消费异常的消息对应的异常消费记录;将所述当前消费信息和异常消费信息发送至所述运维平台,以使运维平台基于所述当前消费信息和异常消费信息,向用户反馈该消费端的消费信息。应用本发明实施例提供的方法,用户可通过运维平台查询得到,消费端正在消费的消息和消费异常的消息的相关信息。在消费端存在异常状况时,运维人员可以方便快捷地获取消费端的相关消费信息,对异常原因进行快速定位,而无需在服务器的大量数据中人工查找异常数据,可节省运维人员的工作量,减少异常定位工作的时间消耗,提高工作效率。
为了更好地说明本发明实施例提供的方法,结合图2,对本发明实施例提供的方法中的查询过程作进一步说明。
如图2所示,查询过程涉及的对象包括运维平台MQCloud,消息中间件RocketMQ和消费者(消费端)。在业务***的运行过程中,消费者从RocketMQ中获取消息进行消费。通过内嵌SDK的方式,使消费者记录消息消费过程中的相关信息,包括每个正在消费的消息的过程消费记录和每个消费异常的消息的异常消费记录。
本发明实施例提供的查询过程如下:
1.查询数据;
用户可通过MQCloud的前端界面(可为web界面),执行查询消费者的消费详情信息的操作,以使前端界面向MQCloud发送查询消费者的消费信息的查询指令。具体操作可以为在消费详情的监控界面中,点击某一消费者的名称标识。
2.获取消费者状况;
MQCloud响应于用户在前端界面的查询操作,向RocketMQ发送请求获取消费者状况(也就是其相关消费信息)的信息查询请求。
3.远程请求;
RocketMQ响应于MQCloud的信息查询请求,则向消费者发送远程请求,请求获取消费消息过程中的相关信息。
4.返回数据;
消费者将RocketMQ请求的数据返回RocketMQ。
5.返回消费者状况;
当RocketMQ接收到消费者返回的数据后,向MQCloud返回消费者状况对应的相关消费信息。
6.返回数据;
当MQCloud接收到RocketMQ返回的消费者状况的相关消费信息后,向前端界面返回消费者的相关消费信息,以向用户反馈。
进一步的,在图1所示方法的基础上,本发明实施例提供了又一种消费信息查询方法,本发明实施例提供的方法中,所述步骤S101中提及的向所述信息查询请求对应的消费端发送信息获取请求的过程,包括:
调用所述消息中间件的通信模块中预设的远程请求指令,基于所述远程请求指令向所述消费端发送所述信息获取请求。
本发明实施例提供的方法中,可预先对消息中间件的通信模块(内部通信协议或通信处理器)进行扩展,增设支持查询消费端的消费信息的指令。可通过调用预设的远程请求指令,基于该远程请求指令向消费端发送对应的信息获取请求。
本发明实施例提供的方法中的消息中间件为RocketMQ,扩展RocketMQ的通信部分,使得其能够支持查询消费端的消费状况。具体实现为扩展RocketMQ的Netty通信处理器,增加支持查询消费端消费状况的指令,能够在不修改RocketMQ核心源码的情况下实现通信支持。查询过程中的指令配置和传递过程可如图3所示,SohuClientRemotingProcessor(搜狐客户端远程处理器,也就是MQCloud的处理器)的指令发送至ClientRemotingProcessor(客户端远程处理器,也就是RocketMQ的处理器),该指令通过RocketMQ中的NettyRequestProcessor(Netty请求处理器)的处理,发送给对应消费端。需要说明的是,图3所示具体的指令内容和对象名称,仅是为了更好地说明本发明实施例提供的方法所提供的具体实施例,并非是对具体设置内容的限定。
为了更好地说明本发明实施例提供的方法,在图1所示方法的基础上,本发明实施例提供的方法中,步骤S102中所提及的消费端存储正在消费的消息所对应的过程消费记录的过程,包括:
当所述消费端需要对各个待消费消息中的目标消息进行消费处理时,确定所述目标消息对应的目标消费信息,所述目标消费信息包括所述目标消息对应的消息标识、消费线程和消费时间;
本发明实施例提供的方法中,消费端可依次对各个待消费消息进行并行处理。按照消费顺序,消费端需要对其中的目标消息进行消费处理时,可根据目标消息的消息信息和线程分配信息,确定目标消息的消息标识、消费该目标消息的消费线程,并将当前时间(消费开始时间)作为该目标消息对应的消费时间,将上述信息作为其对应的目标消费信息。
对所述目标消息进行消费处理,并在对所述目标消息进行消费处理的过程中,将所述目标消费消息作为所述目标消息对应的过程消费记录进行存储。
本发明实施例提供的方法中,此时可按照目标消息的消费逻辑,对目标消息进行消费处理,并在目标消息开始实际的消费处理过程时,将目标消息作为正在消息的消息,将其对应的目标消费信息作为其对应的过程消费记录进行存储。
需要说明的是,本发明实施例仅是对于一个正在消费的消息对应的过程消费记录的存储过程进行说明,在实际的应用过程中,消费端对于每个正在消费的消息,在开始该消息的实际消费处理过程时,均会执行上述存储过程。
进一步的,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,步骤S102中提及的消费端存储消费异常的消息所对应的异常消费记录的过程,包括:
当所述目标消息的消费处理过程结束后,判断所述消费端是否已成功消费所述目标消息;
本发明实施例提供的方法中,当结束目标消息的消费处理过程后,可获取目标消息对应的消费结果,根据消费结果判断消费端是否已成功消费目标消息,若消费结果为消费成功,则消费端已成功消费目标消息,若消费结果为消费失败,则消费端未成功消费目标消息。
若所述消费端未成功消费所述目标消息,则确定所述目标消息对应的异常信息,所述异常信息包括所述消息标识、所述消费线程、所述消费时间和所述目标消息对应的堆栈标识;
本发明实施例提供的方法中,若消费端未成功消费目标消息,则根据预先存储的过程消费记录和堆栈分配信息,获取目标消息的消息标识、消费该消息的消费线程、消费时间和目标消息所在堆栈对应的堆栈标识,将上述信息作为目标消息对应的异常信息。
将所述目标消息确定为消费异常的消息,并将所述异常信息作为所述目标消息对应的异常消费记录进行存储。
本发明实施例提供的方法中,当目标消息消费失败时,则将目标消息作为消费异常的消息,将其对应的异常信息作为其对应的异常消费记录进行存储。
需要说明的是,本发明实施例仅是对于一个消费异常的消息对应的异常消费记录的存储过程进行说明,在实际的应用过程中,消费端在每个消息的消费处理过程结束后,均会进行是否成功消费该消息的判断,对于每个未成功消费的消息,均会执行上述异常消费记录的存储过程。
进一步的,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
当所述目标消息的消费处理过程结束后,将已存储的所述目标消息对应的过程消费记录删除。
本发明实施例提供的方法中,当正在消费的消息的消费处理过程结束后,可将消费开始时存储的,该消息的过程消费记录删除。也就是消费端中存储的各个正在消费的消息对应的过程消费记录是变动的,当某一消息的处理过程结束后,该消息则不再作为正在消费的消息,其对应的过程消费记录亦会删除。
为了更好地说明上述实施例中提及的信息存储过程,结合图4所示流程图,进一步对本发明实施例提供的方法中,消费端在消费消息过程中的数据记录与存储过程作简要说明。
如图4所示,当消费端需要消费某一消息前,进程ConsumeThreadStat获取到消费线程、消息ID和消费时间(开始消费时间),将上述信息与该消息对应存储至JVM内存中,存储为key->value的结构(key为线程对象,value为消息列表及开始消费时间)。
通过真实的消费逻辑对消息进行处理,当处理过程结束后,判断该消息是否被消费成功。
若消费失败,通过进程MessageExceptionMetric记录该消息的消费线程、消费ID和消费时间,MessageExceptionMetric需要确定该消息对应的堆栈,将该堆栈作为异常堆栈,除了记录上述的存储结构外,还需额外记录异常堆栈。上述信息亦可存储在JVM内存中。
当消息的消费处理过程完成后,无论该消息消费成功还是消费失败,进程ConsumeThreadStat均移除之前记录的该消息的存储结构(上述消费线程、消费ID和消费时间)。
需要说明的是,本发明实施例提供的方法中所提及的具体进程名称,仅为了更好地说明本发明实施例提供的方法所提供的一个具体实施例,并非对实际的进程名称进行限定,在具体的实现过程中,进程名称可按需自定义设置,不影响本发明实施例提供的方法实现功能。
基于本发明实施例提供的方法,可实时收集消费端的线程堆栈(消费线程)、异常堆栈及对应消息等状况信息,通过扩展RocketMQ内部通信协议,实现RocketMQ与消费端之间的消费信息实时传递,通过MQCloud实现消费信息的web展示,使得实时诊断消费阻塞和消费异常等常见问题变得可行,从而使定位阻塞和异常问题变得便捷,可节省业务遇到此类问题时,人工进行繁琐诊断的时间。
为了更好地说明本发明实施例提供的方法,在上述实施例提供的方法的基础上,本发明实施例提供了又一种消费信息查询方法,其中,步骤S103中所提及的运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息的过程,包括:
响应于所述用户对所述消费端的线程状态进行查询的操作,基于所述当前消费信息,确定当前正在消费消息的各个线程;
本发明实施例提供的方法中,MQCloud的前端界面可提供消费详情的查询界面,当用户在消费详情的查询界面中点击消费端对应的查询按钮后,可对该消费端进行查询,MQCloud可触发上述实施例提供的查询过程,获得该消费端对应的当前消费信息和异常消费信息。在用户对消费端进行查询后,可先跳转至该消费端对应的消费详情页面,该消费详情界面中可显示简要的消费情况的统计信息,包括死信队列(存储重试次数达到阈值的消息的队列)的统计情况,如队列标识、最小偏移量、最大偏移量、消息量和更新时间。该统计信息还包括重试队列的统计信息,如客户端IP、broker标识、队列标识、broker偏移量、消费者偏移量、堆积量和最新消费时间。该统计信息还包括正常消费队列的统计信息,如客户端IP、broker标识、队列标识、broker偏移量、消费者偏移量、堆积量和最新消费时间。
在正常消费队列的统计信息的显示栏目中,可显示对应的线程状态查询按钮,用户可通过点击该按钮,对消费端的线程状态进行查询。响应于该操作,MQCloud可基于消费端对应的当前消费信息,确定消费端当前正在消费消息的各个线程。
确定每个所述线程对应的线程信息,每个所述线程信息包括其对应线程的堆栈信息、线程状态、消费开始时间和消息标识列表;
本发明实施例提供的方法中,可根据当前消费信息包含的内容,确定每个线程的堆栈信息、线程状态、消费开始时间和消息标识列表,消息标识列表中包含其对应线程正在消费的各个消息的消息标识(消息ID)。
在所述运维平台的前端界面中显示各个所述线程信息。
本发明实施例提供的方法中,在前端界面中可显示消费端每个线程的堆栈信息,也就是其对应线程堆栈中的数据内容,并同时显示该线程对应的线程状态,如TIMED_WAITING、RUNNABLE、BLOCKED或WAITING等。另外,还同时显示有每个线程对应的消息标识列表,当用户点击消息标识列表中的消息标识时,则向用户显示其点击的消息标识对应的消息内容,包括客户端IP、发送时间、broker、队列标识和消息详情。
基于本发明实施例提供的方法,用户可在前端界面中查询到消费端正在消费消息的线程堆栈、线程状态和消费开始时间,可以根据这些信息确定线程是否出现阻塞,可定位出现阻塞的线程和阻塞时间,进而可以跟踪业务代码。当用户需要查询什么样的消息导致阻塞时,亦可通过点击消息标识列表中的消息标识获得消息内容,可以协助用户进行更深入的追踪工作,提高工作效率。
进一步的,在上述实施例提供的方法的基础上,本发明实施例提供的方法中,步骤S103中所提及的运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息的过程,包括:
响应于所述用户对所述消费端的异常状态进行查询的操作,基于所述异常消费信息,确定所述消费端对应的各个异常堆栈;
本发明实施例提供的方法中,在消费端对应的消费详情页面中,正常消费队列的统计信息的显示栏目中,可显示对应的异常状态查询按钮,用户可通过点击该按钮,对消费端的异常状态的相关信息进行查询。响应于该操作,MQCloud可基于消费端对应的异常消费信息,确定各个异常堆栈,也就是各个消费异常的消息对应的堆栈。
确定每个所述异常堆栈对应的堆栈异常信息,每个所述堆栈异常信息包括其对应异常堆栈的堆栈信息、异常时间和异常消息标识列表;
本发明实施例提供的方法中,可根据异常消费信息包含的内容,确定每个异常堆栈对应的堆栈信息、异常时间和异常消息标识列表,异常消息标识列表中包含其对应异常堆栈所对应的各个消费异常的消息的消息标识(消息ID)。
在所述运维平台的前端界面中显示各个所述堆栈异常信息。
本发明实施例提供的方法中,在前端界面中可显示每个异常堆栈的堆栈信息、异常时间和异常消息标识列表,当用户点击异常消息标识列表中的消息标识时,可显示用户点击的消息标识对应的消息内容。
与图1所示的消费信息查询方法相对应的,本发明实施例还提供了一种消费信息查询装置,用于对图1中所示方法的具体实现,其结构示意图如图5所示,包括:
第一发送单元201,用于当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收单元202,用于接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
第二发送单元203,用于将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息。
基于本发明实施例提供的装置,当业务***的消息中间件接收到运维平台发送的信息查询请求时,向对应的消费端发送信息获取请求,并接收该消费端确定的当前消费信息和异常消费信息,所述当前消费信息包括该消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括该消费端存储的每个消费异常的消息对应的异常消费记录;将所述当前消费信息和异常消费信息发送至所述运维平台,以使运维平台基于所述当前消费信息和异常消费信息,向用户反馈该消费端的消费信息。应用本发明实施例提供的装置,用户可通过运维平台查询得到,消费端正在消费的消息和消费异常的消息的相关信息。在消费端存在异常状况时,运维人员可以方便快捷地获取消费端的相关消费信息,对异常原因进行快速定位,而无需在服务器的大量数据中人工查找异常数据,可节省运维人员的工作量,减少异常定位工作的时间消耗,提高工作效率。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,所述第一发送单元201,包括:
调用子单元,用于调用所述消息中间件的通信模块中预设的远程请求指令,基于所述远程请求指令向所述消费端发送所述信息获取请求。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第一确定单元,用于当所述消费端需要对各个待消费消息中的目标消息进行消费处理时,确定所述目标消息对应的目标消费信息,所述目标消费信息包括所述目标消息对应的消息标识、消费线程和消费时间;
第一存储单元,用于对所述目标消息进行消费处理,并在对所述目标消息进行消费处理的过程中,将所述目标消费消息作为所述目标消息对应的过程消费记录进行存储。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
判断单元,用于当所述目标消息的消费处理过程结束后,判断所述消费端是否已成功消费所述目标消息;
第二确定单元,用于若所述消费端未成功消费所述目标消息,则确定所述目标消息对应的异常信息,所述异常信息包括所述消息标识、所述消费线程、所述消费时间和所述目标消息对应的堆栈标识;
第二存储单元,用于将所述目标消息确定为消费异常的消息,并将所述异常信息作为所述目标消息对应的异常消费记录进行存储。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
删除单元,用于当所述目标消息的消费处理过程结束后,将已存储的所述目标消息对应的过程消费记录删除。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第三确定单元,用于响应于所述用户对所述消费端的线程状态进行查询的操作,基于所述当前消费信息,确定当前正在消费消息的各个线程;
第四确定单元,用于确定每个所述线程对应的线程信息,每个所述线程信息包括其对应线程的堆栈信息、线程状态、消费开始时间和消息标识列表;
第一显示单元,用于在所述运维平台的前端界面中显示各个所述线程信息。
在上述实施例提供的装置的基础上,本发明实施例提供的装置中,还包括:
第五确定单元,用于响应于所述用户对所述消费端的异常状态进行查询的操作,基于所述异常消费信息,确定所述消费端对应的各个异常堆栈;
第六确定单元,用于确定每个所述异常堆栈对应的堆栈异常信息,每个所述堆栈异常信息包括其对应异常堆栈的堆栈信息、异常时间和异常消息标识列表;
第二显示单元,用于在所述运维平台的前端界面中显示各个所述堆栈异常信息。
本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的消费信息查询方法。
本发明实施例还提供了一种电子设备,其结构示意图如图6所示,具体包括存储器301,以及一个或者一个以上的指令302,其中一个或者一个以上指令302存储于存储器301中,且经配置以由一个或者一个以上处理器303执行所述一个或者一个以上指令302进行以下操作:
当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种消费信息查询方法,其特征在于,包括:
当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息;
其中,所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息,包括:
响应于所述用户对所述消费端的线程状态进行查询的操作,基于所述当前消费信息,确定当前正在消费消息的各个线程;
确定每个所述线程对应的线程信息,每个所述线程信息包括其对应线程的堆栈信息、线程状态、消费开始时间和消息标识列表;
在所述运维平台的前端界面中显示各个所述线程信息。
2.根据权利要求1所述的方法,其特征在于,所述向所述信息查询请求对应的消费端发送信息获取请求,包括:
调用所述消息中间件的通信模块中预设的远程请求指令,基于所述远程请求指令向所述消费端发送所述信息获取请求。
3.根据权利要求1所述的方法,其特征在于,所述消费端存储正在消费的消息所对应的过程消费记录的过程,包括:
当所述消费端需要对各个待消费消息中的目标消息进行消费处理时,确定所述目标消息对应的目标消费信息,所述目标消费信息包括所述目标消息对应的消息标识、消费线程和消费时间;
对所述目标消息进行消费处理,并在对所述目标消息进行消费处理的过程中,将所述目标消费消息作为所述目标消息对应的过程消费记录进行存储。
4.根据权利要求3所述的方法,其特征在于,所述消费端存储消费异常的消息所对应的异常消费记录的过程,包括:
当所述目标消息的消费处理过程结束后,判断所述消费端是否已成功消费所述目标消息;
若所述消费端未成功消费所述目标消息,则确定所述目标消息对应的异常信息,所述异常信息包括所述消息标识、所述消费线程、所述消费时间和所述目标消息对应的堆栈标识;
将所述目标消息确定为消费异常的消息,并将所述异常信息作为所述目标消息对应的异常消费记录进行存储。
5.根据权利要求3所述的方法,其特征在于,还包括:
当所述目标消息的消费处理过程结束后,将已存储的所述目标消息对应的过程消费记录删除。
6.根据权利要求1所述的方法,其特征在于,所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息,还包括:
响应于所述用户对所述消费端的异常状态进行查询的操作,基于所述异常消费信息,确定所述消费端对应的各个异常堆栈;
确定每个所述异常堆栈对应的堆栈异常信息,每个所述堆栈异常信息包括其对应异常堆栈的堆栈信息、异常时间和异常消息标识列表;
在所述运维平台的前端界面中显示各个所述堆栈异常信息。
7.一种消费信息查询装置,其特征在于,包括:
第一发送单元,用于当业务***的消息中间件接收到信息查询请求时,向所述信息查询请求对应的消费端发送信息获取请求,所述信息查询请求为运维平台响应于用户对所述消费端的查询操作所发送的请求;
接收单元,用于接收所述消费端响应于所述信息获取请求所确定的当前消费信息和异常消费信息,所述当前消费信息包括所述消费端存储的每个正在消费的消息对应的过程消费记录,所述异常消费信息包括所述消费端存储的每个消费异常的消息对应的异常消费记录;
第二发送单元,用于将所述当前消费信息和所述异常消费信息发送至所述运维平台,以使所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息;
其中,所述运维平台基于所述当前消费信息和所述异常消费信息,向所述用户反馈所述消费端的消费信息,包括:
响应于所述用户对所述消费端的线程状态进行查询的操作,基于所述当前消费信息,确定当前正在消费消息的各个线程;
确定每个所述线程对应的线程信息,每个所述线程信息包括其对应线程的堆栈信息、线程状态、消费开始时间和消息标识列表;
在所述运维平台的前端界面中显示各个所述线程信息。
8.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~6任意一项所述的消费信息查询方法。
9.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1~6任意一项所述的消费信息查询方法。
CN202111608271.1A 2021-12-27 2021-12-27 消费信息查询方法及装置、存储介质及电子设备 Active CN113986601B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111608271.1A CN113986601B (zh) 2021-12-27 2021-12-27 消费信息查询方法及装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111608271.1A CN113986601B (zh) 2021-12-27 2021-12-27 消费信息查询方法及装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113986601A CN113986601A (zh) 2022-01-28
CN113986601B true CN113986601B (zh) 2022-04-26

Family

ID=79734460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111608271.1A Active CN113986601B (zh) 2021-12-27 2021-12-27 消费信息查询方法及装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113986601B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381986A (zh) * 2020-03-10 2020-07-07 北京奇艺世纪科技有限公司 消息传输方法、***、装置、电子设备及可读存储介质
CN111915275A (zh) * 2020-07-31 2020-11-10 上海燕汐软件信息科技有限公司 一种应用操作的流程管理方法、装置及***
CN112527520A (zh) * 2020-12-01 2021-03-19 中国建设银行股份有限公司 一种部署消息中间件的方法和装置
CN112583931A (zh) * 2020-12-25 2021-03-30 北京百度网讯科技有限公司 消息处理方法、消息中间件、电子设备和存储介质
CN112882842A (zh) * 2021-02-03 2021-06-01 厦门投融汇网络有限公司 一种基于redis存储作为消息中间件的数据传输方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103856393B (zh) * 2013-07-09 2017-11-03 上海携程商务有限公司 基于数据库的分布式消息中间件***及其运行方法
CN104092767B (zh) * 2014-07-21 2017-06-13 北京邮电大学 一种增加消息队列模型的发布/订阅***及其工作方法
CN104731912B (zh) * 2015-03-24 2017-12-19 浪潮集团有限公司 一种消息中间件mq的消息传输方法和装置
CN110019001B (zh) * 2017-08-17 2021-07-06 中国电信股份有限公司 提升消息中间件消息追踪能力的方法、***和监控模块
CN110335034B (zh) * 2019-06-27 2023-02-21 甘肃万华金慧科技股份有限公司 一种资费异常处理***
CN111240925A (zh) * 2019-12-30 2020-06-05 昆明尚禾农业科技有限公司 农业自动化设备监测运维***
CN111611094A (zh) * 2020-05-26 2020-09-01 山东汇贸电子口岸有限公司 对异常mq信息的监控及管理方法
CN112185031A (zh) * 2020-09-18 2021-01-05 广州市贺氏办公设备有限公司 一种消费机异常数据的处理方法、***、装置及介质
CN112689020B (zh) * 2020-12-30 2023-08-04 北京锐安科技有限公司 一种消息传输方法、消息中间件、电子设备及存储介质
CN113746703B (zh) * 2021-09-03 2023-01-20 上海众源网络有限公司 一种异常链路监控方法、***和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111381986A (zh) * 2020-03-10 2020-07-07 北京奇艺世纪科技有限公司 消息传输方法、***、装置、电子设备及可读存储介质
CN111915275A (zh) * 2020-07-31 2020-11-10 上海燕汐软件信息科技有限公司 一种应用操作的流程管理方法、装置及***
CN112527520A (zh) * 2020-12-01 2021-03-19 中国建设银行股份有限公司 一种部署消息中间件的方法和装置
CN112583931A (zh) * 2020-12-25 2021-03-30 北京百度网讯科技有限公司 消息处理方法、消息中间件、电子设备和存储介质
CN112882842A (zh) * 2021-02-03 2021-06-01 厦门投融汇网络有限公司 一种基于redis存储作为消息中间件的数据传输方法

Also Published As

Publication number Publication date
CN113986601A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
WO2021121370A1 (zh) 用于消息队列的消息丢失检测方法和装置
US8195757B2 (en) Method, apparatus and computer program for controlling retention of publications
CN111897638B (zh) 分布式任务调度方法及***
US20080065652A1 (en) Maintaining and establishing subscriptions with load-balanced servers
CN102449628A (zh) 用于持久性Web应用设计的架构模式
CN111818117A (zh) 数据更新的方法、装置、存储介质及电子设备
US7996840B2 (en) Method, system, and apparatus for scheduling pattern based web services
CN112055061A (zh) 分布式消息处理方法和设备
CN111061498B (zh) 一种配置信息管理***
JP4905150B2 (ja) ソフトウェア動作実績管理システム、方法及びプログラム
US8326913B2 (en) Method and system for service contract discovery
CN112764696A (zh) 一种云打印服务器、远程打印设备的智能打印方法及***
CN100479458C (zh) 调度基于模式的Web服务的方法、***和装置
CN112398797B (zh) 数据传输方法、接收装置、发送装置、介质、设备及***
US7543041B2 (en) Pattern based web services using caching
US7289989B2 (en) Pattern based web services
CN113986601B (zh) 消费信息查询方法及装置、存储介质及电子设备
CN110505177B (zh) 一种信息收集***、终端设备及远程主机
CN115333942B (zh) 事件重试方法及装置、存储介质及电子设备
CN109905459B (zh) 一种数据传输方法及装置
CN114896035A (zh) 跨平台空间的定时任务调度管理***
CN114153583A (zh) 任务状态管理方法、任务管理***和任务调用***
CN114928523B (zh) 基于5g oam的网元升级方法及升级装置
CN111639873B (zh) 版本发布的辅助方法及相关装置
CN109639785B (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