一种数据处理方法、消息追踪监控方法和分布式系统与流程

文档序号:18561027发布日期:2019-08-30 23:17阅读:164来源:国知局
一种数据处理方法、消息追踪监控方法和分布式系统与流程

本发明涉及计算机技术领域,更具体地,涉及一种数据处理方法、消息追踪监控方法和分布式系统。



背景技术:

随着微服务架构的广泛应用,服务按照不同的维度进行拆分,进程数量增多,进程之间的通信复杂,往往一次请求会涉及到多个服务,一旦程序异常,定位分析问题的难度和时间将会大大增加。因此,需要通过消息链路监控来在上下文中理解分布式系统的行为,监控不同节点之间的关联动作,以便于定位分析系统中的问题。

目前,通常采用探针的方式(如zipkin,一种分布式数据追踪系统)来实现分布式系统中的消息链路监控,但是,这种将业务组件引入项目中,增加了开发的负担,同时,会消耗系统资源,降低系统性能。



技术实现要素:

有鉴于此,本发明实施例提供一种数据处理方法、消息追踪监控方法和分布式系统,以在不影响系统性能的同时实现业务消息的追踪监控,保证了系统的高可用性。

第一方面,本发明实施例提供一种数据处理方法,所述方法包括:

接收并解析业务消息;

响应于所述业务消息的消息头为空,生成所述业务消息的全局标识;

通过协议层封装将所述业务消息的全局标识存储至所述业务消息的消息头中;

生成并发送所述业务消息对应的日志信息,所述日志信息包括所述业务消息的全局标识、源节点标识、目标节点标识和时间戳。

进一步地,所述方法还包括:

响应于所述业务消息的消息头中存在全局标识,生成并发送所述业务消息对应的日志信息。

第二方面,本方实施例提供一种消息追踪监控方法,应用于包括多个节点的数据处理系统,所述方法包括:

收集并存储业务消息对应的日志信息,所述日志信息包括所述业务消息的全局标识、源节点标识、目标节点标识和时间戳;其中,所述业务消息的全局标识通过协议层封装存储在所述业务消息的消息头中;

根据所述业务消息的全局标识获取所述业务消息对应的日志流,所述日志流包括所述业务消息对应的所有日志信息;

分析所述日志流以实现对所述业务消息的追踪监控。

进一步地,分析所述日志流以实现对所述业务消息的追踪监控包括:

根据所述日志流获取所述业务消息的传输信息;

响应于所述业务消息传输异常,发送警告信息。

进一步地,收集并存储业务消息对应的日志信息包括:

通过elk日志分析平台收集并存储所述业务消息对应的日志信息。

第三方面,本发明实施例提供一种分布式系统,所述系统包括:

多个节点,被配置为接收和/或发送业务消息、以及发送所述业务消息对应的日志信息,所述日志信息包括所述业务消息的全局标识、源节点标识、目标节点标识和时间戳;其中,所述业务消息的全局标识通过协议层封装存储在所述业务消息的消息头中;

服务器,被配置为收集并存储所述业务消息对应的日志信息;

所述服务器进一步被配置为根据所述业务消息的全局标识获取所述业务消息对应的日志流,分析所述日志流以实现对所述业务消息的追踪监控,所述日志流包括所述业务消息对应的所有日志信息。

进一步地,所述节点还被配置为解析接收到的业务消息,并响应于所述业务消息的消息头为空,生成所述业务消息的全局标识,并通过协议层封装将所述业务消息的全局标识存储至所述业务消息的消息头中;

所述节点进一步被配置为生成所述业务消息对应的日志信息。

进一步地,所述服务器进一步被配置为根据所述日志流获取所述业务消息的传输信息,并响应于所述业务消息传输异常,发送警告信息。

进一步地,所述服务器进一步被配置为通过elk日志分析平台收集并存储所述业务消息对应的日志信息。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储计算机程序指令,所述计算机程序指令在被处理器执行时实现如本发明实施例第一方面和/或本发明实施例第二方面所述的方法。

本发明实施例公开了一种数据处理方法、消息追踪监控方法和分布式系统,通过协议层封装将业务消息的全局标识存储至业务消息的消息头中,使得服务器收集的日志信息能够根据全局标识形成业务消息对应的日志流,根据日志流对业务消息进行追踪监控,由此,本实施例可以在不影响系统性能的同时实现业务消息的追踪监控,保证了系统的高可用性。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本发明实施例的分布式系统的示意图;

图2是本发明实施例的日志收集分析过程的示意图;

图3是本发明实施例的数据处理方法的流程图;

图4是本发明实施例的消息追踪监控方法的流程图;

图5是本发明实施例的数据处理装置的示意图;

图6是本发明实施例的消息追踪监控装置的示意图;

图7是本发明实施例的电子设备的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

图1是本发明实施例的分布式系统的示意图。如图1所示,本实施例的分布式系统1包括节点11-15和服务器16。应理解,图1中的节点个数仅仅是示例性的,本实施例并不对此进行限定。

在本实施例中,节点11-15被配置为接收和/或发送业务消息。具体地,以节点11为例,节点11接收并解析业务消息,并响应于业务消息的消息头为空,生成业务消息的全局标识,通过协议层封装将业务消息的全局标识存储至业务消息的消息头中。由此,本实施例无需引入业务组件,便能够通过业务消息的全局标识追踪监控该业务消息,保证了系统性能不受影响。

在一种可选的实现方式中,节点11中预置有可执行文件,该可执行文件可用于解析业务消息,并在业务消息的消息头为空时,生成该业务消息的全局标识。

可选的,可执行文件的文件类型可以为lib类型文件。在组播通信中,将可执行文件生成的业务消息的全局标识通过组播通信框架ultra/dsp的协议封装至业务消息的消息头中。

节点11还用于生成业务消息对应的日志信息。其中,日志信息包括业务消息的全局标识,源节点标识、目标节点标识和时间戳,时间戳包括节点11接收业务消息的时间和发送业务消息的时间。

服务器16被配置为收集并存储业务消息对应的日志信息,并根据业务消息的全局标识获取该业务消息对应的日志流,分析日志流以实现对业务消息的追踪监控。日志流包括该业务消息对应的所有日志信息。分析日志流以实现对业务消息的追踪监控具体可以为根据日志流获取业务消息的传输信息,响应于业务消息传输异常,发送警告信息。其中,业务消息的传输信息可以包括业务消息的传输时间、相关节点对该业务消息是否响应及响应时间等。若业务消息的传输时间较长、或相关节点未对该业务消息进行响应,或响应时间太长,发送警告信息。

如图1所示,以节点11接收业务消息a为例进行描述。节点11接收到业务消息a后,通过预置的可执行文件解析业务消息a,若业务消息a的消息头中为空,则生成业务消息a的全局标识,并通过协议层封装存储至业务消息a的消息头中。节点11将业务消息a发送至节点12,生成对应的日志信息发送至服务器16。该日志信息包括业务消息a的源节点标识(本实施例以节点11为首个节点为例,因此无源节点标识)、目标节点12的标识和时间戳。其中,时间戳包括节点11接收到业务消息a的时间和发送业务消息a的时间。

节点12接收到业务消息a后,通过预置的可执行文件解析业务消息a,解析得到业务消息a的消息头中已经存在全局标识,将业务消息a发送至节点13和节点14,并生成对应的日志信息,将该日志信息发送至服务器16。该日志信息可以包括两个日志数据,一个日志数据包括业务消息a的源节点11的标识、目标节点13的标识、节点12接收到业务消息a的时间以及向节点13发送业务消息a的时间。另一个日志数据包括业务消息a的源节点11的标识、目标节点14的标识、节点12接收到业务消息a的时间以及向节点14发送业务消息a的时间。节点13、节点14和节点15接收和发送业务消息a和发送日志信息的方法与节点12类似,在此不再赘述。节点11-节点15还用于根据业务消息a进行对应的业务处理。

由此,服务器16可以收集获得业务消息a对应的所有日志信息,并能够根据业务消息a的全局标识将其对应的日志信息形成日志流。服务器根据业务消息a对应的日志流可以分析得知业务消息a的传输路径有两条,一条传输路径为节点11-节点12-节点13,另一条传输路径为节点11-节点12-节点14-节点15。并且,服务器16可以根据业务消息a的日志信息得到业务消息a对应的传输信息,也即在各节点之间的传输时间、各节点响应业务消息a的所需时间等。由此,服务器16可以通过传输信息确定在分布式系统1处理业务消息a时的处理性能以及是否存在传输异常,并在业务消息a传输异常发出相关警告信息,由此,实现业务消息的追踪监控,快速定位故障点,保证的系统的高可用性。

本实施例通过协议层封装将业务消息的全局标识存储至业务消息的消息头中,使得服务器收集的日志信息能够根据全局标识形成业务消息对应的日志流,根据日志流对业务消息进行追踪监控,由此,本实施例可以在不影响系统性能的同时实现业务消息的追踪监控,保证了系统的高可用性。

在一种可选的实现方式中,服务器16部署有elk日志分析平台。服务器16通过elk日志分析平台收集并存储业务消息对应的日志信息。elk日志分析平台包括elasticsearch单元、logstash单元和kiabana单其中,elasticsearch单元提供了一个分布式多节点的全文搜索引擎,具有搜索、稳定、可靠、快速等特征。logstash单元用于对日志信息进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用。logstash单元提供一个web界面,搜索和展示所有日志信息。并且,logstash单元还用于将收到的各节点的日志信息进行过滤、修改等操作后一并发送给elasticsearch。kibana单元可以为logstash和elasticsearch提供日志分析的web界面,以汇总、分析和搜索重要数据日志。

图2是本发明实施例的日志收集分析过程的示意图。如图2所示,在一种可选的实现方式中,elk日志分析平台还包括filebeat单元21,实施例通过filebeat单元21作为代理将待收集的日志信息加入到消息队列22中。其中,filebeat是一种轻量级的日志传输工具,可以用于追踪读取系统中产生的日志文件,并将日志信息通过消息队列转发至logstash单元23。logstash单元23从消息队列中获取日志信息,并对日志信息进行过滤,将过滤后的日志信息存储到elasticsearch单元24中,由此,可以实现日志信息的收集存储。

服务器16还包括日志关键字监控单元25和日志分析单元26。其中,日志关键字监控单元25可以根据关键字信息监控对应的业务日志信息,以跟踪监控重要业务消息的传输情况。其中,关键字信息与所需监控的重要业务消息相对应。日志分析单元26根据elasticsearch单元24中收集的日志信息对各业务消息的消息流进行监控分析,以获取各业务消息的传输信息。传输信息包括各节点之间的传输时间、各节点的响应时间等。由此,本实施例可以实现在业务消息传输异常时,准确定位传输异常的节点,提高了系统的可靠性。

图3是本发明实施例的数据处理方法的流程图。如图3所示,本发明实施例的数据处理方法包括以下步骤:

步骤s110,接收并解析业务消息。在一种可选的实现方式中,分布式系统中的各节点预置有可执行文件。该预置的可执行文件在执行时用于解析业务消息。

步骤s120,判断业务消息的消息头是否为空。响应于业务消息的消息头为空,执行步骤s130。响应于业务消息的消息头中包括全局标识,执行步骤s150。

步骤s130,在业务消息的消息头为空时,生成业务消息的全局标识。在一种可选的实现方式中,在业务消息的消息头为空时,节点中预置的可执行文件在执行时生成业务消息的全局标识。

步骤s140,通过协议层封装将业务消息的全局标识存储至业务消息的消息头中。在组播通信中,可以将可执行文件生成的业务消息的全局标识通过组播通信框架ultra/dsp的协议封装至业务消息的消息头中。

步骤s150,生成并发送业务消息对应的日志信息。其中,日志信息包括业务消息的全局标识,源节点标识、目标节点标识和时间戳,时间戳包括节点11接收业务消息的时间和发送业务消息的时间。

本实施例通过预置的可执行文件解析业务消息,并在业务消息的消息头中封装全局标识,以使得根据全局标识将业务消息的日志信息形成日志流,以进一步通过该日志流实现业务消息的追踪监控,由此,本实施例无需引入业务组件,便能够通过业务消息的全局标识追踪监控该业务消息,保证了系统性能不受影响。

图4是本发明实施例的消息追踪监控方法的流程图。如图4所示,本发明实施例的消息追踪监控方法包括以下步骤:

步骤s210,收集并存储业务消息对应的日志信息。其中,日志信息包括业务消息的全局标识、源节点标识、目标节点标识和时间戳。业务消息的全局标识通过协议层封装存储在业务消息的消息头中。在一种可选的实现方式中,本实施例通过elk日志分析平台收集并存储业务消息对应的日志信息。

步骤s220,根据业务消息的全局标识获取业务消息对应的日志流。其中,日志流包括业务消息对应的所有日志信息。可选的,根据业务消息的全局标识将业务消息对应的日志信息按照业务消息的传输顺序形成日志流。

步骤s230,分析业务消息对应的日志流以实现对业务消息的追踪监控。具体地,根据日志流获取业务消息的传输信息,响应于业务消息传输异常,发送警告信息。其中,业务消息的传输信息可以包括业务消息的传输时间、相关节点对该业务消息是否响应及响应时间等。若业务消息的传输时间较长、或相关节点未对该业务消息进行响应,或响应时间太长,发送警告信息。

本实施例通过收集业务消息的日志信息,并根据业务消息头中封装的全局标识形成业务消息对应的日志流,根据日志流对业务消息进行追踪监控,由此,本实施例可以在不影响系统性能的同时实现业务消息的追踪监控,保证了系统的高可用性。

图5是本发明实施例的数据处理装置的示意图。如图5所示,本实施例的数据处理装置5包括消息处理单元51、全局标识生成单元52、全局标识存储单元53和日志处理单元54。

其中,消息处理单元51被配置为接收并解析业务消息。在一种可选的实现方式中,分布式系统中的各节点预置有可执行文件。该预置的可执行文件在执行时用于解析业务消息。全局标识生成单元52被配置为响应于业务消息的消息头为空,生成业务消息的全局标识。在一种可选的实现方式中,在业务消息的消息头为空时,节点中预置的可执行文件在执行时生成业务消息的全局标识。全局标识存储单元53被配置为通过协议层封装将业务消息的全局标识存储至业务消息的消息头中。在组播通信中,可以将可执行文件生成的业务消息的全局标识通过组播通信框架ultra/dsp的协议封装至业务消息的消息头中。日志处理单元54被配置为生成并发送业务消息对应的日志信息。其中,日志信息包括业务消息的全局标识,源节点标识、目标节点标识和时间戳,时间戳包括节点11接收业务消息的时间和发送业务消息的时间。在一种可选的实现方式中,日志处理单元54还被配置为响应于业务消息的消息头中存储全局标识,生成并发送业务消息对应的日志信息。

本实施例通过预置的可执行文件解析业务消息,并在业务消息的消息头中封装全局标识,以使得根据全局标识将业务消息的日志信息形成日志流,以进一步通过该日志流实现业务消息的追踪监控,由此,本实施例无需引入业务组件,便能够通过业务消息的全局标识追踪监控该业务消息,保证了系统性能不受影响。

图6是本发明实施例的消息追踪监控装置的示意图。本实施例的消息跟踪监控装置6包括日志收集单元61、日志流获取单元62和日志分析单元63。

日志收集单元61被配置为收集并存储业务消息对应的日志信息。其中,日志信息包括业务消息的全局标识、源节点标识、目标节点标识和时间戳。业务消息的全局标识通过协议层封装存储在业务消息的消息头中。在一种可选的实现方式中,本实施例通过elk日志分析平台收集并存储业务消息对应的日志信息。

日志流获取单元62被配置为根据业务消息的全局标识获取业务消息对应的日志流。其中,日志流包括业务消息对应的所有日志信息。可选的,根据业务消息的全局标识将业务消息对应的日志信息按照业务消息的传输顺序形成日志流。日志分析单元63被配置为分析业务消息对应的日志流以实现对业务消息的追踪监控。具体地,根据日志流获取业务消息的传输信息,响应于业务消息传输异常,发送警告信息。其中,业务消息的传输信息可以包括业务消息的传输时间、相关节点对该业务消息是否响应及响应时间等。若业务消息的传输时间较长、或相关节点未对该业务消息进行响应,或响应时间太长,发送警告信息。

本实施例通过收集业务消息的日志信息,并根据业务消息头中封装的全局标识形成业务消息对应的日志流,根据日志流对业务消息进行追踪监控,由此,本实施例可以在不影响系统性能的同时实现业务消息的追踪监控,保证了系统的高可用性。

图7是本发明实施例的电子设备的示意图。图7所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的指令,从而执行如上所述的本申请实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(i/o)装置75。输入/输出(i/o)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置75通过输入/输出(i/o)控制器76与系统相连。

本领域的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品。

本申请是参照根据本申请实施例的方法、和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。

这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。

本发明实施例还涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlbmemorb)、随机存取存储器(ram,randomaccessmemorb)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1