信息监控方法、装置、系统和计算机可读存储介质与流程

文档序号:16609650发布日期:2019-01-14 21:30阅读:100来源:国知局
信息监控方法、装置、系统和计算机可读存储介质与流程
本发明涉及数据处理领域,特别涉及一种信息监控方法、装置、系统和计算机可读存储介质。
背景技术
:kafka是一种高吞吐、高并发、高可靠的分布式发布订阅系统,由领英(linkin)公司使用编程语言scala编写,并于2010年作为阿帕奇(apache)的顶级开源项目。kafka通过不断的迭代更新,完善了自身的实时数据生态系统,并且广泛应用于多种大数据应用场景。例如,由于kafka消息订阅系统中的生产者和消费者具有解耦性,因而kafka可以广泛应用于中间件消息存储系统;kafka可以作为web或者app用户活动跟踪的动作流数据收集器;kafka还可以为分布式基础架构hadoop、数据仓库中的离线分析和数据挖掘的实时处理分析提供数据源;kafka也可以作为实时海量大数据日志收集器,应用于企业或公司的高效日志服务运营平台中。kafka的系统角色主要分为生产者客户端(kafkaproducer)、kafka集群、消费者客户端(kafkaconsumer)。生产者向kafka集群的主题(topic)中写(push)数据,消费者客户端从主题中拉(pull)数据。生产者客户端希望知道某段时间内被写入的数据量、生产速度等监控指标;消费者客户端希望知道消费速度、消费积压等监控指标。随着实时计算技术的快速发展,具有高吞吐、高并发、高可靠的kafka还可以作为多种不同的实时计算平台的数据源,以提供数据流服务。技术实现要素:发明人对相关技术进行分析后发现,不同的实时计算平台存在消费者客户端的位点信息管理方式不同的情况。另外,在不同的kafka版本中,也存在消费者客户端提交消费者位点的方法不同的情况。这就增加了在采集不同的实时计算平台以及多版本kafka消费者的消费积压情况的复杂性。因此,相关技术对消费积压情况的监控效率较低。本发明实施例所要解决的一个技术问题是:如何提高对消息订阅系统中消费积压情况的监控效率。根据本发明一些实施例的第一个方面,提供一种信息监控方法,包括:读取一个或多个位点记录模块中的消费位点信息,其中,消费位点信息包括消费者向位点记录模块提交的消费位点值;将消费位点信息写入到信息汇总主题;从信息汇总主题中读取消费位点信息;根据读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算消费积压信息。在一些实施例中,位点记录模块包括集群中的分布式文件系统上的临时节点模块、位点服务模块、消费者提交位点记录主题模块中的至少一种。在一些实施例中,读取一个或多个位点记录模块中的消费位点信息包括:定时读取临时节点模块或者位点服务模块的消费位点信息。在一些实施例中,读取一个或多个位点记录模块中的消费位点信息包括:实时读取消费者提交位点记录主题模块中的消费位点信息。在一些实施例中,消费位点信息还包括位点记录模块类型、消费者信息、消费者订阅信息。在一些实施例中,消费者信息包括消费者所属的消费组的名称,消费者订阅信息包括消费者订阅的主题名称、主题的分区标识;消费积压信息包括以下至少一种:消费者所属的消费组所订阅的主题中每个分区的消费积压信息、或者消费组订阅的主题的消费积压信息。在一些实施例中,根据读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算消费积压信息包括:根据从信息汇总主题的多个分区中读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算每个分区对应的消费积压信息;对预设时间内消费者订阅的同一个主题的多个分区对应的消费积压信息进行聚合计算,得到同一个主题的消费积压信息。在一些实施例中,位点记录模块位于分布式发布订阅系统kafka。根据本发明一些实施例的第二个方面,提供一种信息监控装置,包括:信息读取模块,被配置为读取一个或多个位点记录模块中的消费位点信息,其中,消费位点信息包括消费者向位点记录模块提交的消费位点值;信息汇总模块,被配置为将消费位点信息写入到信息汇总主题;信息读取模块,被配置为从信息汇总主题中读取消费位点信息;消费积压信息计算模块,被配置为根据读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算消费积压信息。在一些实施例中,位点记录模块包括集群中的分布式文件系统上的临时节点模块、位点服务模块、消费者提交位点记录主题模块中的至少一种。在一些实施例中,信息读取模块进一步被配置为定时读取集群中的分布式文件系统上的临时节点模块或者位点服务模块的消费位点信息,或者,实时读取消费者提交位点记录主题模块中的消费位点信息。在一些实施例中,消费位点信息还包括位点记录模块类型、消费者信息、消费者订阅信息。在一些实施例中,消费者信息包括消费者所属的消费组的名称,消费者订阅信息包括消费者订阅的主题名称、主题的分区标识;消费积压信息包括以下至少一种:消费者所属的消费组所订阅的主题中每个分区的消费积压信息、或者消费组订阅的主题的消费积压信息。在一些实施例中,消费积压信息计算模块进一步被配置为根据从信息汇总主题的多个分区中读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算每个分区对应的消费积压信息;对预设时间内消费者订阅的同一个主题的多个分区对应的消费积压信息进行聚合计算,得到同一个主题的消费积压信息。根据本发明一些实施例的第三个方面,提供一种信息监控系统,包括:前述任意一种信息监控装置;以及位点记录模块。在一些实施例中,位点记录模块位于分布式发布订阅系统kafka。根据本发明一些实施例的第四个方面,提供一种信息监控装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行前述任意一种信息监控方法。根据本发明一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意一种信息监控方法。上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例采用信息汇总主题将位点记录模块中的消费位点消息进行汇总处理,并且在计算消费积压信息时,可以统一从信息汇总主题中拉取消费位点消息,而无需关注位点记录模块属于何种类型。从而,可以提高对消息订阅系统中消费积压情况的监控效率,进而提高数据处理和业务处理的时效性。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为根据本发明一些实施例的信息监控方法的流程示意图。图2为根据本发明一些实施例的消费位点采集过程的流程示意图。图3为根据本发明另一些实施例的信息监控方法的流程示意图。图4为根据本发明一些实施例的信息监控装置的结构示意图。图5为根据本发明一些实施例的信息监控系统的结构示意图。图6为根据本发明另一些实施例的信息监控系统的结构示意图。图7为根据本发明另一些实施例的信息监控装置的结构示意图。图8为根据本发明又一些实施例的信息监控装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。图1为根据本发明一些实施例的信息监控方法的流程示意图。如图1所示,该实施例的信息监控方法包括步骤s102~s108。在步骤s102中,读取一个或多个位点记录模块中的消费位点信息,其中,消费位点信息包括消费者向位点记录模块提交的消费位点值。消费位点值表示消费者客户端当前的消费位置,例如可以为消息队列中当前已消费的消息所具有的最大偏移量(offset)。除了消费位点值以外,根据需要,消费位点信息中还可以包括位点记录模块类型、消费者信息、消费者订阅信息等内容。例如,在进行网页或终端应用的用户活动跟踪的过程中收集动作数据流时,生产者是用户活动跟踪的收集程序;消费者是用户活动跟踪数据的使用者,例如对用户行为进行分析、数据挖掘、搜索、推荐的对象等等;主题是一类数据的逻辑名称和标记;生产者生产的消息是用户的浏览、搜索等行为的信息,以供消费者进行读取。位点记录模块是指分布式发布订阅系统中用于记录消费者客户端提交的消费位点信息的模块。该实施例中的位点记录模块可以有一个或多个,也可以包括一种类型或多种不同的类型。本发明的实施例可以基于分布式发布订阅系统kafka实现,即,接收位点记录模块位于kafka系统。kafka实现了服务端消息的持久化。客户端通过主动从服务端拉取(pull)消息的方式获取消息,并且根据消息的位点信息可以回退消费位点实现重复消费以及按照位点索引持久化数据,从而可以实现对消费者客户端消费实时性的监控。而zeromq、rabbitmq、rocketmq等发布订阅消息系统是由服务端采用推(push)的方式向客户端推送数据,从而消息只能够短暂地存在,并且这些系统也不支持位点信息的回退,因此无法重复消费数据和索引历史数据。本发明更适用于kafka系统以及具有类似特点的系统,从而可以对消费积压情况进行监控。在步骤s104中,将消费位点信息写入到信息汇总主题。在一些实施例中,可以将读取的信息进行统一的格式化处理,获得固定格式的消费位点消息,然后将包括消费位点信息的消费位点消息写入到信息汇总主题。在分布式发布订阅系统中,主题是指消息的识别属性,是一类消息的集合的统称。本发明的实施例新建立了一个专用于存储读取的消费位点信息的主题。根据需要,信息汇总主题可以设有一个或多个分区(partition),每个分区例如可以为一个数据分片。在步骤s106中,从信息汇总主题中读取消费位点信息。当以消息承载消费位点信息时,可以从信息汇总主题中拉取消息,以获得消费位点信息。在步骤s108中,根据读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算消费积压信息。消费积压信息可以为消费位点值,例如包括分区的消费位点值以及主题的消费位点值。通过上述实施例的方法,可以采用信息汇总主题将位点记录模块中的消费位点信息进行汇总处理,并且在计算消费积压信息时,可以统一从信息汇总主题中读取消费位点信息,而无需关注位点记录模块属于何种类型。从而,可以提高对消息订阅系统中消费积压情况的监控效率,进而提高数据处理和业务处理的时效性。在一些实施例中,位点记录模块包括集群中的分布式文件系统上的临时节点模块、位点服务模块、消费者提交位点记录主题模块中的至少一种。在基于不同系统版本、不同消费者类型、不同实时计算框架进行位点管理时,消费者客户端会将消费位点信息存储到不同类型的位点记录模块中。下面以kafka系统为例,示例性地介绍消费者客户端在三种不同情况下所采用的位点记录模块以及本发明相应的示例性的处理方式。在第一种情况下,同一版本的kafka系统中,不同类型的消费者的位点管理机制不同。kafka在不断的迭代更新中,版本经历了从0.7.x到1.x的升级。在0.8x版本及之前版本的kafka系统中,高级消费者客户端(highlevelconsumer)将已经消费到并处理完的位点记录在kafka集群中的分布式文件系统(zookeeper)上的临时节点;而低级消费者(simpleconsumer)将已经消费到并处理完的位点提交至自己保存位点的服务,这种服务被称为位点服务。从而,消费者客户端在进行消费积压信息采集的过程中需要判断消费者类型,并根据消费者类型进行消费积压监控。然而,消费者客户端在消费数据时,往往并不清楚自己的消费者类型以及采用的位点管理,也不希望在进行实时流式计算的同时还要花费额外的精力对消费者类型及位点做特殊的管理。此外,当消费者用户使用的消费者类型发生转换的情况下,消费积压信息的采集方式也应该随之发生变化。而服务端难以控制和预料消费者用户的类型转换。因此可能出现采集错误的消费积压信息的情况。在第二种情况下,不同kafka系统版本之间的位点管理机制不同。在0.10x版本之后的消费者客户端不需要和zookeeper交互,而是将消费位点信息提交至消费者客户端的消费组所属的组管理者(coordinator)。组管理者以消息生产者的角色将消费位点信息发送到kafka集群中用于记录kafka消费者提交位点的主题,例如“__consumer_offsets”主题。由于可能存在消费者的kafka版本跨越了0.8x到0.10x的情况,而令用户统一升级需要经历漫长的过程,从而导致对消费者客户端的消费积压监控也需要做分类处理。在第三种情况下,在不同的实时计算框架中,kafka消费者的位点管理方式也不统一。例如,实时计算平台flink中的消费者采用zookeeper管理消费位点信息;实时计算平台strom-kafka和实时计算平台sparkstreaming中,基于0.8x的kafka消费者客户端通过位点服务进行位点管理,而基于0.10x以上的kafka消费者提交的位点信息存储在kafka集群中记录消费者提交位点信息的主题。而kafka消费者客户端的管理侧并不关心kafka消费者运行在哪个实时计算平台,也不关心消费者提交位点的具体位置。但是由于上述因素的影响,管理侧难以控制消费者使用实时计算方式的转换以及消费者类型的转换。在本发明的实施例中,可以读取zookeeper上的临时节点、位点服务、用于记录kafka消费者提交位点的主题中的消费位点信息,并将消费位点信息写入到信息汇总主题。从而,在采集积压信息时,可以统一从信息汇总主题中获取来自临时节点和位点服务的消费位点信息,提高了消费积压信息监控的准确性和时效性。进行消费积压信息计算的过程中,无需关注消费者客户端的类型、系统的版本、实时计算框架的类型,因此具有很好的可扩展性。下面参考图2描述本发明消费位点信息采集过程的实施例。图2为根据本发明一些实施例的消费位点采集过程的流程示意图。如图2所示,该实施例的消费位点采集过程包括步骤s202~s206。在步骤s202中,定时读取集群中的分布式文件系统上的临时节点模块的消费位点信息。在步骤s204中,定时读取集群中的分布式文件系统上的临时节点模块或者位点服务模块的消费位点信息。对于步骤s202~s204,可以采用定时器设置定时任务的方式定时获取。在步骤s206中,实时读取消费者提交位点记录主题模块中的消费位点信息。消费者提交位点记录主题模块中的数据为实时流数据。在一些实施例中,采集消费者提交位点记录主题模块中的信息时,还可以判断是否存在延迟。例如,可以设置用于判断消息消费积压的定时器,如果拉取消息的间隔超过拉取时限,则消费者提交位点记录主题模块的监控程序产生报警通知。根据报警通知可以扩充资源、增加任务消费的并发数等等。步骤s202~s206可以以任意顺序执行、或者并行执行,上述顺序不对本发明起限制性作用。通过上述实施例的方法,可以根据不同类型的位点记录模块的特点采用不同的方式采集消费位点信息。在一些实施例中,除了包括消费位点值以外,消费位点信息还可以包括位点记录模块类型、消费者信息、消费者订阅信息。消费者信息例如可以包括消费者所属的消费组的名称,消费者订阅信息例如可以包括消费者订阅的主题名称、主题的分区标识。表1为本发明一些实施例中的消费位点消息中消费位点信息的示例性字段以及每个字段的含义。表1字段含义offset_from位点记录模块的类型clusterid被消费者订阅的主题所属的集群标识consumer_group消费者实例所属的消费组的名称consumer_topic被消费者订阅的主题名称partition被消费者拉取消息的分区idcommited_offset消费位点值在一些实施例中,消费积压信息可以为消费者所属的消费组所订阅的主题中每个分区的消费积压信息、或者消费组订阅的主题的消费积压信息。下面参考图3描述本发明信息监控方法的实施例。图3为根据本发明另一些实施例的信息监控方法的流程示意图。如图3所示,该实施例的信息监控方法包括步骤s302~s310。在步骤s302中,读取一个或多个位点记录模块中的消费位点信息。在步骤s304中,将消费位点信息写入到信息汇总主题。在步骤s306中,从信息汇总主题中读取消费位点信息。在步骤s308中,根据从信息汇总主题的多个分区中读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算每个分区对应的消费积压信息。在步骤s310中,对预设时间内消费者订阅的同一个主题的多个分区对应的消费积压信息进行聚合计算,得到同一个主题的消费积压信息。在一些实施例中,还可以包括步骤s312。在步骤s312中,将计算的消费积压信息发送到用于存储监控信息的主题中,例如monitor-results-topic。下面以一个消费组groupa所订阅的主题topica为例说明消费积压信息的计算过程。消费组中包括多位消费者,同一消费组中的消费者消费同一主题中的消息,该主题中的消息被消息组中的任意消费者消费以后被判定为消费成功。在一些实施例中,可以利用每个分区的最新生产位点值与消费位点值之差计算每个分区的消费积压值。此外,还可以利用同一主题下的每个分区的消费积压值的总和计算主题级别的消费积压值。设topica中包括n个分区p0、p1...pn。在t时刻,分区p0、p1、...pn的最新生产位点值分别为lastest_offset_0、lastest_offset_1、...lastest_offset_n;在t时刻,groupa记录的分区p0、p1、...pn中已经消费处理完的消息的最大位点值即消费位点值分别为commited_offset_0、commited_offset_1、...commited_offset_n。则在t时刻,groupa的分区p0、p1、...pn的分区粒度的消费积压值lag_of_0、lag_of_1、...lag_of_n例如可以分别采用公式(1)~(3)计算。lag_of_o=lastest_offset_0-commited_offset_0(1)lag_of_1=lastest_offset_1-commited_offset_1(2)lag_of_n=lastest_offset_n-commited_offset_n(3)groupa的主题粒度的消费积压值lag_of_topic可以采用公式(4)计算。lag_of_topic=lag_of_o+lag_of_1+…+lag_of_n(4)下面参考图4描述本发明信息监控装置的实施例。图4为根据本发明一些实施例的信息监控装置的结构示意图。如图4所示,该实施例的信息监控装置400包括:信息读取模块4100,被配置为读取一个或多个位点记录模块中的消费位点信息,其中,消费位点信息包括消费者向位点记录模块提交的消费位点值;信息汇总模块4200,被配置为将消费位点信息写入到信息汇总主题;信息读取模块4300,被配置为从信息汇总主题中读取消费位点信息;消费积压信息计算模块4400,被配置为根据读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算消费积压信息。在一些实施例中,位点记录模块包括集群中的分布式文件系统上的临时节点模块、位点服务模块、消费者提交位点记录主题模块中的至少一种。在一些实施例中,信息读取模块4100进一步被配置为定时读取集群中的分布式文件系统上的临时节点模块或者位点服务模块的消费位点信息,或者,实时读取消费者提交位点记录主题模块中的消费位点信息。在一些实施例中,消费位点信息还包括位点记录模块类型、消费者信息、消费者订阅信息。在一些实施例中,消费者信息包括消费者所属的消费组的名称,消费者订阅信息包括消费者订阅的主题名称、主题的分区标识;消费积压信息包括以下至少一种:消费者所属的消费组所订阅的主题中每个分区的消费积压信息、或者消费组订阅的主题的消费积压信息。在一些实施例中,消费积压信息计算模块4400进一步被配置为根据从信息汇总主题的多个分区中读取的消费位点信息中的消费位点值和从集群获取的最新生产位点值计算每个分区对应的消费积压信息;对预设时间内消费者订阅的同一个主题的多个分区对应的消费积压信息进行聚合计算,得到同一个主题的消费积压信息。下面参考图5描述本发明信息监控系统的实施例。图5为根据本发明一些实施例的信息监控系统的结构示意图。如图5所示,该实施例的信息监控系统50包括:信息监控装置510和位点记录模块520。信息监控装置510的具体实施方式可以参考图4实施例中的信息监控装置400。位点记录模块520可以根据需要设置一个或多个、一种或多种,图5中仅示例性地示出了一个。下面参考图6描述本发明信息监控系统的实施例。图6为根据本发明另一些实施例的信息监控系统的结构示意图。如图6所示,该实施例的信息监控系统60包括:信息监控装置610、临时节点模块620、位点服务模块630、消费者提交位点记录主题模块640、信息汇总主题模块650。信息监控装置610从临时节点模块620、位点服务模块630、消费者提交位点记录主题模块640中读取消费位点信息并汇总到信息汇总主题模块650,并且可以从信息汇总主题模块650中读取消费位点信息,以计算消费积压信息。图7为根据本发明另一些实施例的信息监控装置的结构示意图。如图7所示,该实施例的信息监控装置700包括:存储器7100以及耦接至该存储器7100的处理器7200,处理器7200被配置为基于存储在存储器7100中的指令,执行前述任意一个实施例中的信息监控方法。其中,存储器7100例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。图8为根据本发明又一些实施例的信息监控装置的结构示意图。如图8所示,该实施例的信息监控装置800包括:存储器8100以及处理器8200,还可以包括输入输出接口8300、网络接口8400、存储接口8500等。这些接口8300,8400,8500以及存储器8100和处理器8200之间例如可以通过总线860连接。其中,输入输出接口8300为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口8400为各种联网设备提供连接接口。存储接口8500为sd卡、u盘等外置存储设备提供连接接口。本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种信息监控方法。本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1