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

监控Kafka消费者的方法、装置、存储介质及设备与流程

2022-05-18 04:15:41 来源:中国专利 TAG:

监控kafka消费者的方法、装置、存储介质及设备
技术领域
1.本技术涉及监控技术领域,尤其涉及一种监控kafka消费者的方法、装置、存储介质及设备。


背景技术:

2.kafka集群(本技术简称为集群)是企业存储数据较为常用的一种方式,对于集群来说,kafka生产者(本技术简称为生产者)将自身的数据发送给集群中进行统一汇总和处理,kafka消费者(本技术简称为消费者)从集群中读取数据进行分析处理。通过消费者的运行状态,可以感知集群是否正常运行。为此,监控消费者的运行状态成为本领域人员所关注的重点。
3.目前,现有监控消费者的运行状态的方式为:监控整体消费者组的运行状态。显然,现有的监控方式所监控的对象为整个消费者组,无法感知任意一个消费者个体的运行状态,较为局限,且对于消费者众多的集群使用场景而言,单纯利用消费者组的运行状态来判定集群是否正常运行,是较为不合理的。


技术实现要素:

4.本技术提供了一种监控kafka消费者的方法、装置、存储介质及设备,目的在于实现对消费者组中每个消费者的有效监控。
5.为了实现上述目的,本技术提供了以下技术方案:
6.一种监控kafka消费者的方法,包括:
7.对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集所述消费者在集群所包含的各个消息分区中的指标数据;其中,所述指标数据至少包括消费进度;
8.对于每个所述预设时间周期,对所述预设时间周期内所采集的各个所述消费进度进行累加求和,得到所述消费者在所述预设时间周期内的总消费进度;
9.根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态;
10.基于所述消费者在各个所述预设时间周期内的所述总消费进度和所述运行状态,以及各个所述预设时间周期内所述消费者在各个所述消息分区的所述消费进度,生成所述消费者的消费日志,并将所有所述消费者的消费日志均存储到数据库中。
11.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
12.在所述总消费进度小于等于第二预设阈值的情况下,确定所述消费者在所述预设时间周期内的运行状态为正常运行,将所述消费者的状态标识更新为第一标识。
13.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
14.在所述总消费进度小于第一预设阈值、且大于第二预设阈值的情况下,确定所述
消费者在所述预设时间周期内的运行状态为缓慢运行,将所述消费者的状态标识更新为第二标识,并向所述用户发送所述消费者消费速度下降的告警提示;其中,所述第二预设阈值小于所述第一预设阈值。
15.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
16.在所述总消费进度大于等于第一预设阈值的情况下,确定所述消费者在所述预设时间周期内的运行状态为停止运行,将所述消费者的状态标识更新为第三标识,向所述用户发送所述消费者异常的告警提示。
17.可选的,还包括:
18.在接收到所述用户的日志查询指令的情况下,从所述数据库中获取与所述日志查询指令所示的消费者的消费日志,并通过预设前端界面向所述用户展示所述消费日志。
19.可选的,还包括:
20.对于每个所述消费者的消费日志,按照所述预设时间间隔定时统计所述消费日志中所包含的各条纪录的总数;所述纪录包括在同一所述预设时间周期内获得的总消费进度、运行状态、消费者在各个消息分区的消费进度;
21.在所述总数大于第三预设阈值的情况下,删除所述消费日志中满足预设条件的纪录,以使所述消费日志中所保留的各个纪录的总数等于所述第三预设阈值;所述预设条件为:位于纪录序列中前n位的纪录,n为正整数;所述纪录序列基于对所述消费日志中所包含的各个纪录进行排序得到。
22.可选的,所述基于对所述消费日志中所包含的各个纪录进行排序得到所述纪录序列,包括:
23.按照发生时间由早到晚的顺序,对所述消费日志中所包含的各个纪录进行排序,得到所述纪录序列。
24.一种监控kafka消费者的装置,包括:
25.采集单元,用于对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集所述消费者在集群所包含的各个消息分区中的指标数据;其中,所述指标数据至少包括消费进度;
26.求和单元,用于对于每个所述预设时间周期,对所述预设时间周期内所采集的各个所述消费进度进行累加求和,得到所述消费者在所述预设时间周期内的总消费进度;
27.确定单元,用于根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态;
28.生成单元,用于基于所述消费者在各个所述预设时间周期内的所述总消费进度和所述运行状态,以及各个所述预设时间周期内所述消费者在各个所述消息分区的所述消费进度,生成所述消费者的消费日志,并将所有所述消费者的消费日志均存储到数据库中。
29.一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行所述的监控kafka消费者的方法。
30.一种监控kafka消费者的设备,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
31.所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序运行时执行
所述的监控kafka消费者的方法。
32.本技术提供的技术方案,对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集消费者在集群所包含的各个消息分区中的指标数据;对于每个预设时间周期,对预设时间周期内所采集的各个消费进度进行累加求和,得到消费者在预设时间周期内的总消费进度;根据总消费进度,确定消费者在预设时间周期内的运行状态;基于消费者在各个预设时间周期内的总消费进度和运行状态,以及各个预设时间周期内消费者在各个消息分区的消费进度,生成消费者的消费日志,并将所有消费者的消费日志均存储到数据库中。可见,本技术所示方案通过采集消费者在集群中每个消息分区的指标数据(即消费进度),将对各个消费进度进行累加求和得到总消费进度,基于总消费进度确定消费者的运行状态,并在运行状态为非正常运行(即缓慢运行、停止运行)时发出告警提示,通过告警提示可及时通知用户进行相应处理,缩短了发现问题的时间,避免因为处理问题不及时而引发重要生产事件,实现对消费者组中每个消费者的有效监控。
附图说明
33.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本技术实施例提供的一种监控kafka消费者的方法的流程图;
35.图2为本技术实施例提供的另一种监控kafka消费者的方法的流程图;
36.图3为本技术实施例提供的一种监控kafka消费者的装置的架构示意图。
具体实施方式
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
38.如图1所示,为本技术实施例提供的一种监控kafka消费者的方法的流程图,包括:
39.s101:对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集消费者在集群所包含的各个消息分区中的指标数据。
40.其中,预先配置的消费采集工具包括但不限于为:burrow工具。所谓的消息分区,是指将各个生产者生成消息分区进行存放。指标数据至少包括消费进度(consumer lag),所谓的消费进度,是指消费者消费速度相比于生产者生成消息的滞后程度。
41.具体的,假设集群中包含有第一消息分区、第二消息分区和第三消息分区,对于第一消息分区的每个消费者,调用预先配置的消息进度采集工具,按照预设时间周期定期采集消费者在第一消息分区中的指标数据;对于第二消息分区的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集消费者在第二消息分区中的指标数据;对于第三消息分区的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期采集消费者在第三消息分区中的指标数据。
42.需要说明的是,采集消费者在各个消息分区的消费进度,可以是同时采集,不存在先后顺序。
43.s102:对于每个预设时间周期,对预设时间周期内所采集的消费者在各个消息分区的消费进度进行累加求和,得到消费者在预设时间周期内的总消费进度。
44.其中,总消费进度,可以理解为消费者消费集群中所有消息的进度。
45.需要说明的是,对于集群中只存在一个消息分区的情况下,对于每个预设的时间周期,对一个消息分区中的不同分区的消费者进度进行累加求和,得到消费者在预设时间周期内的总消费进度。
46.具体的,假设集群包含有第一消息分区、第二消息分区和第三消息分区,消费者在第一消息分区的消费进度为第一消费进度,在第二消息分区的消费进度为第二消费进度,在第三消息分区的消费进度为第三消费进度。为此,将第一消费进度、第二消费进度和第三消费进度进行累加求和,得到消费者在预设时间周期内的总消费进度。
47.s103:根据消费者在预设时间周期内的总消费进度,确定消费者在预设时间周期内的运行状态。
48.其中,在总消费进度大于等于第一预设阈值的情况下,确定消费者的运行状态为停止运行;在总消费进度小于第一预设阈值、且大于第二预设阈值的情况下,确定消费者的运行状态为缓慢运行;在总消费进度小于等于第二预设阈值的情况下,确定消费者的运行状态为正常运行。
49.一般来讲,第二预设阈值小于第一预设阈值。此外,消费进度以及总消费进度各自的取值,通常均为非负数。
50.s104:当消费者的运行状态为正常运行时,则将消费者的状态标识更新为第一标识。
51.其中,第一标识的具体表现形式可以设为“ok”。
52.s105:当消费者的运行状态为缓慢运行时,则将消费者的状态标识更新为第二标识,并向用户发送消费者消费速度下降的告警提示。
53.其中,消费者的运行状态为缓慢运行,则代表消费者虽然正在工作(即消费集群中的消息),但消费者消费集群中的消息的速度,已经落后于集群中消息的生产速度。
54.另外,第二标识的具体表现形式可以设为“warning”。
55.s106:当消费者的运行状态为停止运行时,则将消费者的状态标识更新为第三标识,向用户发送消费者异常的告警提示。
56.其中,消费者的运行状态为停止运行,则代表消费已经停止消费集群中的消息,此时的消费者可能发生异常(例如因网络故障导致消费者离线),需要提示用户进行检查。
57.此外,第三标识的具体表现形式可以设为“error”。
58.s107:基于消费者在各个预设时间周期内的总消费进度和运行状态,以及各个预设时间周期内消费者在各个消息分区的消费进度,生成消费者的消费日志,并将所有消费者的消费日志均存储到数据库中。
59.其中,对于任意一个消费者的消费日志而言,可以按照发生时间从早到晚的顺序,对消费日志中所包含的各条纪录(包括在同一预设时间周期内获得的总消费进度、运行状态、消费者在各个消息分区的消费进度)进行排序,得到纪录序列,以方便用户查阅。
60.具体的,假设消费者的消费日志包括第一纪录、第二纪录以及第三纪录,第一纪录、第二纪录以及第三纪录都在同一天发生,但是,第一纪录的发生时间为14:01,第二纪录的发生时间为14:05,第三纪录的发生时间为14:10。为此,按照发生时间由早到晚的顺序,对第一纪录、第二纪录以及第三纪录进行排序,得到纪录序列。在纪录序列中,第一纪录的序位高于第二纪录的序位,第二纪录的序位高于第三纪录的序位。
61.s108:在接收到用户的日志查询指令的情况下,从数据库中获取与日志查询指令所示的消费者的消费日志,并通过预设前端界面向用户展示消费日志。
62.s109:对于每个消费者的消费日志,按照预设时间间隔定时统计消费日志中所包含的各条纪录的总数。
63.s110:在总数大于第三预设阈值的情况下,删除消费日志中满足预设条件的纪录,以使消费日志中所保留的各个纪录的总数等于第三预设阈值。
64.其中,预设条件包括但不限于为:位于纪录序列中前n位的纪录,n为正整数。纪录序列基于对消费日志中所包含的各个纪录进行排序得到,可选的,可以按照发生时间由早到晚的顺序,对消费日志中所包含的各个纪录进行排序,得到纪录序列。
65.综上所述,本实施例所示的方案通过采集消费者在集群中每个消息分区的指标数据(即消费进度),将对各个消费进度进行累加求和得到总消费进度,基于总消费进度确定消费者的运行状态,并在运行状态为非正常运行(即缓慢运行、停止运行)时发出告警提示,通过告警提示可及时通知用户进行相应处理,缩短了发现问题的时间,避免因为处理问题不及时而引发重要生产事件,实现对消费者组中每个消费者的有效监控。
66.如图2所示,为本技术实施例提供的另一种监控kafka消费者的方法的流程图,包括:
67.s201:对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集消费者在集群所包含的各个消息分区中的指标数据。
68.其中,指标数据至少包括消费进度。
69.s202:对于每个预设时间周期,对预设时间周期内所采集的各个消费进度进行累加求和,得到消费者在预设时间周期内的总消费进度。
70.s203:根据总消费进度,确定消费者在预设时间周期内的运行状态。
71.s204:基于消费者在各个预设时间周期内的总消费进度和运行状态,以及各个预设时间周期内消费者在各个消息分区的消费进度,生成消费者的消费日志,并将所有消费者的消费日志均存储到数据库中。
72.综上所述,本实施例所示的方案通过采集消费者在集群中每个消息分区的指标数据(即消费进度),将对各个消费进度进行累加求和得到总消费进度,基于总消费进度确定消费者的运行状态,并在运行状态为非正常运行(即缓慢运行、停止运行)时发出告警提示,通过告警提示可及时通知用户进行相应处理,缩短了发现问题的时间,避免因为处理问题不及时而引发重要生产事件,实现对消费者组中每个消费者的有效监控。
73.如图3所示,为本技术实施例提供的一种监控kafka消费者的装置的架构示意图,包括:
74.采集单元100,用于对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集消费者在集群所包含的各个消息分区中的指标数据;其
中,指标数据至少包括消费进度。
75.求和单元200,用于对于每个预设时间周期,对预设时间周期内所采集的各个消费进度进行累加求和,得到消费者在预设时间周期内的总消费进度。
76.确定单元300,用于根据总消费进度,确定消费者在预设时间周期内的运行状态。
77.确定单元300具体用于:在总消费进度小于等于第二预设阈值的情况下,确定消费者在预设时间周期内的运行状态为正常运行,将消费者的状态标识更新为第一标识。
78.确定单元300具体用于:在总消费进度小于第一预设阈值、且大于第二预设阈值的情况下,确定消费者在预设时间周期内的运行状态为缓慢运行,将消费者的状态标识更新为第二标识,并向用户发送消费者消费速度下降的告警提示;其中,第二预设阈值小于第一预设阈值。
79.确定单元300具体用于:在总消费进度大于等于第一预设阈值的情况下,确定消费者在预设时间周期内的运行状态为停止运行,将消费者的状态标识更新为第三标识,向用户发送消费者异常的告警提示。
80.生成单元400,用于基于消费者在各个预设时间周期内的总消费进度和运行状态,以及各个预设时间周期内消费者在各个消息分区的消费进度,生成消费者的消费日志,并将所有消费者的消费日志均存储到数据库中。
81.展示单元500,用于在接收到用户的日志查询指令的情况下,从数据库中获取与日志查询指令所示的消费者的消费日志,并通过预设前端界面向用户展示消费日志。
82.统计单元600,用于对于每个消费者的消费日志,按照预设时间间隔定时统计消费日志中所包含的各条纪录的总数;纪录包括在同一预设时间周期内获得的总消费进度、运行状态、消费者在各个消息分区的消费进度。
83.删除单元700,用于在总数大于第三预设阈值的情况下,删除消费日志中满足预设条件的纪录,以使消费日志中所保留的各个纪录的总数等于第三预设阈值;预设条件为:位于纪录序列中前n位的纪录,n为正整数;纪录序列基于对消费日志中所包含的各个纪录进行排序得到。
84.删除单元700具体用于:按照发生时间由早到晚的顺序,对消费日志中所包含的各个纪录进行排序,得到纪录序列。
85.综上所述,本实施例所示的方案通过采集消费者在集群中每个消息分区的指标数据(即消费进度),将对各个消费进度进行累加求和得到总消费进度,基于总消费进度确定消费者的运行状态,并在运行状态为非正常运行(即缓慢运行、停止运行)时发出告警提示,通过告警提示可及时通知用户进行相应处理,缩短了发现问题的时间,避免因为处理问题不及时而引发重要生产事件,实现对消费者组中每个消费者的有效监控。
86.本技术还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本技术提供监控kafka消费者的方法。
87.本技术还提供了一种监控kafka消费者的设备,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本技术提供监控kafka消费者的方法,包括如下步骤:
88.对于消费者组中的每个消费者,调用预先配置的消费进度采集工具,按照预设时间周期定期采集所述消费者在集群所包含的各个消息分区中的指标数据;其中,所述指标
数据至少包括消费进度;
89.对于每个所述预设时间周期,对所述预设时间周期内所采集的各个所述消费进度进行累加求和,得到所述消费者在所述预设时间周期内的总消费进度;
90.根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态;
91.基于所述消费者在各个所述预设时间周期内的所述总消费进度和所述运行状态,以及各个所述预设时间周期内所述消费者在各个所述消息分区的所述消费进度,生成所述消费者的消费日志,并将所有所述消费者的消费日志均存储到数据库中。
92.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
93.在所述总消费进度小于等于第二预设阈值的情况下,确定所述消费者在所述预设时间周期内的运行状态为正常运行,将所述消费者的状态标识更新为第一标识。
94.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
95.在所述总消费进度小于第一预设阈值、且大于第二预设阈值的情况下,确定所述消费者在所述预设时间周期内的运行状态为缓慢运行,将所述消费者的状态标识更新为第二标识,并向所述用户发送所述消费者消费速度下降的告警提示;其中,所述第二预设阈值小于所述第一预设阈值。
96.可选的,所述根据所述总消费进度,确定所述消费者在所述预设时间周期内的运行状态,包括:
97.在所述总消费进度大于等于第一预设阈值的情况下,确定所述消费者在所述预设时间周期内的运行状态为停止运行,将所述消费者的状态标识更新为第三标识,向所述用户发送所述消费者异常的告警提示。
98.可选的,还包括:
99.在接收到所述用户的日志查询指令的情况下,从所述数据库中获取与所述日志查询指令所示的消费者的消费日志,并通过预设前端界面向所述用户展示所述消费日志。
100.可选的,还包括:
101.对于每个所述消费者的消费日志,按照所述预设时间间隔定时统计所述消费日志中所包含的各条纪录的总数;所述纪录包括在同一所述预设时间周期内获得的总消费进度、运行状态、消费者在各个消息分区的消费进度;
102.在所述总数大于第三预设阈值的情况下,删除所述消费日志中满足预设条件的纪录,以使所述消费日志中所保留的各个纪录的总数等于所述第三预设阈值;所述预设条件为:位于纪录序列中前n位的纪录,n为正整数;所述纪录序列基于对所述消费日志中所包含的各个纪录进行排序得到。
103.可选的,所述基于对所述消费日志中所包含的各个纪录进行排序得到所述纪录序列,包括:
104.按照发生时间由早到晚的顺序,对所述消费日志中所包含的各个纪录进行排序,得到所述纪录序列。
105.本技术实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本技术实
施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
106.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
107.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

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

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

相关文献