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

基于消息队列的延时告警方法与流程

2022-10-13 00:22:14 来源:中国专利 TAG:


1.本发明涉及金融科技技术领域,尤其涉及一种基于消息队列的延时告警方法。


背景技术:

2.目前银行系统对于实时数据使用的场景比较多,消息队列种类也比较多,比如rocketmq、kafka、isc等。消息队列对消息的时延要求比较高,如果消息出现延迟会导致比较严重的问题,比如用户体验差等。每一个系统都会独立进行监控,而且监控方式不是相同的,比如:cat埋点,系统记录表等。多个系统进行独立监控时,会重复设置监控方式,需要很多时间和人力。


技术实现要素:

3.本发明提供了一种基于消息队列的延时告警方法,通过一个公共组件对多种类型的消息队列进行监控,节省了时间和人力。
4.本发明第一方面提供一种基于消息队列的延时告警方法。该方法从消息队列中读取一条消息进行消费,所述消息包括消息生产者生成所述消息的消息生成时间、消息队列接收到所述消息的消息接收时间;生成消费所述消息的消息消费时间;对所述消息进行解析得到所述消息生成时间和消息接收时间;计算所述消息接收时间和所述消息消费时间之间的时间差得到系统级别延迟;计算所述消息生产时间和所述消息消费时间之间的时间差得到业务级别延迟;当所述系统级别延迟不满足预设的系统级别延迟指标或者业务级别延迟时间不满足预设的业务级别延迟指标,对所述异常信息进行埋点得到异常埋点信息;将所述异常埋点信息向用户进行提示。
5.本发明第二方面提供计算机可读存储介质,所述计算机可读存储介质用于存储程序指令,所述程序指令可被处理器执行以实现所述的基于消息队列的延时告警方法。
6.本发明第三方面提供一种基于消息队列的延时告警装置,所述基于消息队列的延时告警装置用于对消息消费装置所消费的消息延迟进行告警,包括解析单元、获取单元、第一计算单元、第二计算单元、以及埋点单元。解析单元用于当消息消费装置从消息队列中读取一条消息进行消费,对所述消息进行解析得到所述消息生成时间和消息接收时间,所述消息包括消息生产者生成所述消息的消息生成时间、消息队列接收到所述消息的消息接收时间;获取单元用于获取消费所述消息的消息消费时间,所述消息消费时间由消息消费装置生成;第一计算单元,用于计算所述消息接收时间和所述消息消费时间之间的时间差得到系统级别延迟;第二计算单元,用于计算所述消息生产时间和所述消息消费时间之间的时间差得到业务级别延迟;埋点单元,用于当所述系统级别延迟不满足预设的系统级别延迟指标或者业务级别延迟时间不满足预设的业务级别延迟指标,对所述异常信息进行埋点得到异常埋点信息;告警单元,用于将所述异常埋点信息向用户进行提示。
7.上述基于消息队列的延时告警方法和装置,通过对消费的消息进行解析获取消息对应的数据信息,预先设置好每种消息队列对应的时延配置,对若干不同种类的消息队列
都可以进行监控,不需要对每种消息队列设置不同的监控方法,当有新的消息队列时,还可以增加时延配置类型,且配置简单,节省了设置多个监控系统的时间和人力。
附图说明
8.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
9.图1为本技术第一实施例提供的基于消息队列延时警告方法的流程图。
10.图2为本技术第一实施例提供的消息时间延迟对照表。
11.图3为步骤s103的另一子步骤流程示意图。
12.图4为本技术第一实施例提供的时延配置类型为代码配置时的配置格式。
13.图5为本技术第一实施例提供的消息获取对应的配置信息的流程图。
14.图6为本技术第一实施例提供的一种基于消息队列的延时告警装置的内部结构示意图。
15.图7为本技术实施例提供的基于消息队列的延时告警方法的计算机设备内部结构示意图。
具体实施方式
16.为了使本技术的目的、技术方案及优点更加清楚明白,如下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
17.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
18.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
19.本技术提供了一种基于消息队列延时告警方法。所述方法应用于应用端。业务端将消息发送至消息队列,应用端从所述消息队列中获取消息。所述应用端预先嵌入提供基于消息队列延时告警方法的sdk,所述sdk是一种软件安装工具包、一种公共组件。在本方法中,调用所述sdk可以解析消息队列中的数据信息。所述应用端与cat服务器端可以通讯,所
述cat服务器端是一个预警平台,当sdk对获取的数据信息进行分析处理而发现数据异常时,所述cat能够监控到所述异常并进行预警。
20.请结合参看图1,其为本技术第一实施例提供的基于消息队列延时警告方法的流程图。该基于消息队列延时警告方法包括步骤s101-s107。
21.步骤s101,从消息队列中读取一条消息进行消费,所述消息包括消息生产者生成所述消息的消息生成时间、消息队列接收到所述消息的消息接收时间。
22.例如,提供服务的业务端为消息生产者,发出提供服务的应用端为消费者。业务端响应用户的请求生成若干消息,业务端将所述若干消息和所述若干消息的生成时间加载在对应的所述消息中发送至消息对列。应用端从消息对列中获取消息进行消费。
23.步骤s102,生成消费所述消息的消息消费时间。应用端记录获取消息的时间。
24.步骤s103,对所述消息进行解析得到所述消息生成时间和消息接收时间。
25.调用应用端的sdk组件以获取业务端发送所述若干消息的时间和消息中间件接收所述若干消息的时间,sdk中有若干时延配置类型,每种配置类型对应一种消息队列,例如rocketmq、kafka、isc。所述时延配置通过识别消息中的字段获取业务端发送消息的时间和中间件接收消息的时间。
26.步骤s104,计算所述消息接收时间和所述消息消费时间之间的时间差得到系统级别延迟。
27.步骤s105,计算所述消息生产时间和所述消息消费时间之间的时间差得到业务级别延迟。
28.通过所述数据信息确定sdk的时延配置类型,并根据所述时延配置类型和所述数据信息计算系统级别延迟数据和业务级别延迟数据。
29.所述时延配置通过识别消息中的字段获取业务端发送消息的时间和中间件接收消息的时间后,计算系统级别延迟数据和业务级别延迟数据。所述系统级别延迟数据为应用端消费消息的时间减去消息队列接收到消息的时间,所述业务级别延迟数据为应用端消费消息的时间减去业务端生成消息的时间。所述消息队列接收到消息的时间用英文表示为server_accept_time,所述应用端消费消息的时间用英文表示为client_accept_time,所述业务端生成消息的时间用英文表示为business_create_time。
30.步骤s106,当所述系统级别延迟不满足预设的系统级别延迟指标或者业务级别延迟时间不满足预设的业务级别延迟指标,对所述异常信息进行埋点得到异常埋点信息。
31.对所述时延指标数据做离散化统计得到若干取值范围,如图2所示,将没有时间延迟的时延指标数据标记为“ng”、时延指标数据表示消息延迟时间在一分钟内,时间延迟的时延指标数据标记为“0001m”、时延指标数据表示消息延迟时间在一至五分钟内,时间延迟的时延指标数据标记为“0005m”、时延指标数据表示消息延迟时间在五至十五分钟内,时间延迟的时延指标数据标记为“0015m”、时延指标数据表示消息延迟时间在十五至三十分钟内,时间延迟的时延指标数据标记为“0030m”、时延指标数据表示消息延迟时间在三十至六十分钟内,时间延迟的时延指标数据标记为“0060m”、时延指标数据表示消息延迟时间在一至两个小时内,时间延迟的时延指标数据标记为“0120m”、时延指标数据表示消息延迟时间在二至四小时内,时间延迟的时延指标数据标记为“0240m”、时延指标数据表示消息延迟时间在四至八小时内,时间延迟的时延指标数据标记为“0480m”、时延指标数据表示消息延迟
时间在八至十六小时内,时间延迟的时延指标数据标记为“0960m
”ꢀ
时延指标数据表示消息延迟时间在三十二个小时内,时间延迟的时延指标数据标记为“1920m”。
32.根据所述消息延迟的时间的对照表获取当前的时延指标数据中的消息延时时间对应的标记。所述消息延迟对照表还可以根据实际情况重新制定。
33.所述sdk会记录所述时延指标数据的计算过程,生成日志,当所述时延指标数据达到系统级别延迟指标或者业务级别延迟指标时,会在sdk中生成异常埋点信息,所述异常埋点事件包括生成异常埋点数据信息,所述埋点数据信息包括异常代码。
34.所述异常代码包括系统级别延迟埋点信息和业务级别延迟埋点信息,所述系统级别延迟埋点信息命名格式包括:预设系统级别一级名称和预设系统级别二极名称,所述预设系统级别一级名称是system_message_delay,所述预设系统级别二极名称是topic
ꢀ‘ꢀ
@
ꢀ’ꢀ
subtopic
ꢀ‘ꢀ
@
ꢀ’ꢀ
时间延迟;所述业务级别延迟埋点信息命名格式包括:预设业务级别一级名称和预设业务级别二极名称,预设业务级别一级名称是business_message_delay,所述业务级别二极名称是topic
ꢀ‘ꢀ
@
ꢀ’ꢀ
subtopic
ꢀ‘ꢀ
@
ꢀ’ꢀ
时间延迟。上述埋点名称中的时间延迟为所述消息延迟的时间的对照表中的时间延迟的时延指标数据标记,topic和subtopic是配置文件中的代码段,以使消息能够获取对应类型的配置文件。例如:当消息延迟时间为10分钟时,埋点结果为90 @ 90002 @ 0015m。当消息延迟是时间为负30分钟时,埋点结果90 @ 90002 @ ng。
35.与所述应用端通讯的cat服务端能够监控到所述异常数据信息而后进行预警,例如发出闪烁的红光。
36.步骤s107,将所述异常埋点信息向用户进行提示。所述应用端与cat服务端进行通讯连接,所述cat服务端监控到异常埋点信息后进行预警。
37.请参看图3,图3是步骤s103的另一子步骤流程示意图。步骤103包括如下步骤s1031-s1035。
38.步骤s1031,从所述消息中获取所述消息接收时间。所述消息接收时间为消息队列接收消息的时间,存储于消息的配置文件中。
39.步骤s1032,获取预设的配置信息,所述配置信息配置有一种或者多种消息队列类型和每一消息队列类型所对应的解析指令,不同的消息队列类型对应不同解析指令。
40.所述配置信息存在于sdk中,所述配置信息中有很多类型的消息队列和与每一种消息队列对应的解析指令,通过识别消息中的字段获取业务端发送消息的时间和中间件接收消息的时间。
41.步骤s1033,获取所述消息的消息队列类型。例如rocketmq、kafka、isc。
42.步骤s1034,根据所述消息队列类型和所述配置信息生成相应的解析指令。
43.步骤s1035,执行所述解析指令从所述消息中获取所述消息生成时间。例如,业务端生成消息的时间存储于消息的配置文件中,并且以xpath的字段形式记载,根据消息队列的种类从sdk中获取时延配置类型,以生成解析指令,对所述 xpath字段进行解析获取业务生成时间。xpath是一种语言,用来确定xml文档中某部分位置,xml是一种可扩展语言,可用来传输和存储数据。
44.所述sdk的时延配置方式类型包括:代码配置、apollo配置、本地配置文件。如图4所示,所述代码配置为固定代码编写配置,不同的topic赋值对应不同的消息对列,不同的
消息对列中的消息可以通过匹配字段的方式获取对应的类型的配置,例如消息中有“topic:90
”ꢀ
的代码段则对应有代码“topic:90”的配置,“topic”与“subtopic”还用于埋点命名,通过“time_field”的赋值代码段获取业务端消息生成时间。
45.apollo(阿波罗)配置是一种适用于不同公司的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
46.其中代码配置优先级最高,本地配置优先级最低。为每一个类型的消息中间件在sdk中设置上述三种类型的配置文件,每种类型的配置文件都有对应的消息对列对应的配置信息。
47.请参看图5,图5为消息获取对应的配置信息的流程图。
48.步骤,s201,读取优先级别最高的配置文件中的配置信息得到相应的待选配置信息。若所述三种类型的配置文件都存在,则选取代码配置文件对应的若干不同的消息队列的种类对应的待选配置信息。
49.步骤s202,判断所述待选配置信息中是否包含所述消息队列类型。例如,判断选取的代码配置文件是否有与所述消息对应的消息队列种类对应的待选配置信息。
50.步骤s203,当所述待选配置信息中包含所述消息队列类型,将所述待选配置信息确认为所述预设的配置信息。
51.步骤s204,当所述待选配置信息中未包含所述消息队列类型,从剩余的多种类型的配置文件中將优先级别最高的配置文件作为最高级别的配置文件并执行重新执行读取优先级别最高的配置文件中的配置信息得到相应的待选配置信息直至所述待选配置信息中包含所述消息队列类型。所述多种类型的配置文件为apollo(阿波罗)配置、代码配置和本地配置,若代码配置类型的配置文件中的配置信息中没有当前的消息队列类型对应的配置文件类型 ,则选取apollo(阿波罗)配置,并判断apollo(阿波罗)配置中是否有与消息对应的配置信息,通过所述配置信息获取解析指令后对所述消息进行解析处理;当只有本地文件配置时,才选取本地配置文件对所述消息进行解析处理。
52.所述每种类型的配置文件名称都是mq_message_biz_time_config.json。
53.每个配置文件的内容包括实时消息处理方法,消息队列处理的注册方法和时延配置更新方法。
54.可以通过cat平台对异常埋点信息进行监控,也可以在应用端配置邮箱发送功能、和短信发送功能,并且所述邮箱发送功能和短信发送功能和sdk进行通信,当sdk中产生异常埋点数据信息时,触发异常埋点事件,以发送短信或邮箱以进行告警。
55.当在sdk中不能获取消息对应的类型的时延配置时,使用apollo配置在所述sdk中设置所述消息对应的时延配置,以对所述消息进行分析。
56.如图6所示,本技术还提供了一种基于消息队列的延时告警装置,所述基于消息队列的延时告警装置1用于对消息消费装置所消费的消息延迟进行告警,所述装置包括:解析单元2,当消息消费装置从消息队列中读取一条消息进行消费,对所述消息进行解析得到所述消息生成时间和消息接收时间,所述消息包括消息生产者生成所述消息的消息生成时间、消息队列接收到所述消息的消息接收时间。
57.提供服务的业务端为消息生产者,发出提供服务的应用端为消费者。业务端响应
用户的请求生成若干消息,业务端将所述若干消息和所述若干消息的生成时间加载在对应的所述消息中发送至消息对列。应用端从消息对列中获取消息进行消费。
58.获取单元3,获取消费所述消息的消息消费时间,所述消息消费时间由消息消费装置生成;调用应用端的sdk组件以获取业务端发送所述若干消息的时间和消息中间件接收所述若干消息的时间,sdk中有若干时延配置类型,每种配置类型对应一种消息队列,例如rocketmq、kafka、isc。所述时延配置通过识别消息中的字段获取业务端发送消息的时间和中间件接收消息的时间。
59.第一计算单元4,计算所述消息接收时间和所述消息消费时间之间的时间差得到系统级别延迟。
60.第二计算单元5,计算所述消息生产时间和所述消息消费时间之间的时间差得到业务级别延迟。
61.通过所述数据信息确定sdk的时延配置类型,并根据所述时延配置类型和所述数据信息计算系统级别延迟数据和业务级别延迟数据。
62.所述时延配置通过识别消息中的字段获取业务端发送消息的时间和中间件接收消息的时间后,计算系统级别延迟数据和业务级别延迟数据。所述系统级别延迟数据为应用端消费消息的时间减去消息队列接收到消息的时间,所述业务级别延迟数据为应用端消费消息的时间减去业务端生成消息的时间。所述消息队列接收到消息的时间用英文表示为server_accept_time,所述应用端消费消息的时间用英文表示为client_accept_time,所述业务端生成消息的时间用英文表示为business_create_time。
63.埋点单元6,当所述系统级别延迟不满足预设的系统级别延迟指标或者业务级别延迟时间不满足预设的业务级别延迟指标,对所述异常信息进行埋点得到异常埋点信息。
64.所述sdk会记录所述时延指标数据的计算过程,生成日志,当所述时延指标数据达到系统级别延迟指标或者业务级别延迟指标时,会在sdk中生成异常埋点信息,所述异常埋点事件包括生成异常埋点数据信息,所述埋点数据信息包括异常代码。
65.告警单元7,将所述异常埋点信息向用户进行提示。
66.本技术还提供一种计算机设备900,请结合参看图7,其为本技术第一实施例提供的计算机设备900的内部结构示意图。进一步的,该计算机嵌入式设备为hud。计算机设备900至少包括存储器901、处理器902。具体地,存储器901,用于存储基于消息队列的延时告警方法的程序指令。处理器902,用于执行程序指令以使计算机设备900实现上述的基于消息队列的延时告警方法。
67.其中,存储器901至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器901不仅可以用于存储安装于计算机设备900的应用软件及各类数据,例如,基于消息队列的延时告警方法的控制指令等,还可以用于暂时地存储已经输出或者将要输出的数据。
68.处理器902在一些实施例中可以是中央处理器(central processing unit, cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器901中存储的程序指令或处理数据。具体地,处理器902执行基于消息队列的延时告警方法的程序指令以控制计算机设备900实现基于消息队列的延时告警方法。
69.进一步地,总线903可以是外设部件互连标准总线(peripheral component interconnect,简称pci)或扩展工业标准结构总线(extended industry standard architecture,简称eisa)等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
70.进一步地,计算机设备900还可以包括显示组件904。显示组件904可以是led(light emitting diode,发光二极管)显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。其中,显示组件904也可以适当的称为显示装置或显示单元,用于显示在计算机设备900中处理的信息以及用于显示可视化的用户界面。
71.进一步地,计算机设备900还可以包括通信组件905,通信组件905可选的可以包括有线通信组件和/或无线通信组件(如wi-fi通信组件、蓝牙通信组件等),通常用于在计算机设备900与其他计算机设备之间建立通信连接。
72.图7仅示出了具有组件901-905以及实现基于消息队列的延时告警方法的程序指令的计算机设备900,本领域技术人员可以理解的是,图7示出的结构并不构成对计算机设备900的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
73.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,具体地,计算机设备900的处理器902执行基于消息队列的延时告警方法的程序指令以控制计算机设备900实现可运动物体的运动轨迹的预测方法的详细过程。可以参考上述方法实施例中的对应过程,在此不再赘述。
74.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,且本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
75.以上所列举的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属于本技术所涵盖的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献