CN112286776A - 一种微服务链路追踪的方法及系统 - Google Patents
一种微服务链路追踪的方法及系统 Download PDFInfo
- Publication number
- CN112286776A CN112286776A CN202011216196.XA CN202011216196A CN112286776A CN 112286776 A CN112286776 A CN 112286776A CN 202011216196 A CN202011216196 A CN 202011216196A CN 112286776 A CN112286776 A CN 112286776A
- Authority
- CN
- China
- Prior art keywords
- service
- traceid
- request
- log information
- micro
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004590 computer program Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000003745 diagnosis Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种微服务链路追踪的方法及系统,该方法为:截取请求任务中服务消费端向服务提供端发送的服务请求;确定服务请求中是否存在TraceID;若存在,将服务请求发送给服务提供端,使服务提供端响应服务请求且将TraceID写入自身对应的MDC;获取与TraceID对应的服务消费端的第一日志信息和服务提供端的第二日志信息;根据第一日志信息和第二日志信息,对请求任务所涉及的微服务进行链路追踪。本方案中,请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,从而实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种微服务链路追踪的方法及系统。
背景技术
微服务是目前逐渐被广泛应用的软件架构,在应用微服务的过程中,服务消费端通常以异步调用的方式调用服务提供端,以及在打印微服务的日志时通常采用异步打印日志的方式进行打印。
但是在一次请求任务中,异步调用的方式和异步打印日志的方式均存在该请求任务中的TraceID(追踪ID)不唯一的问题,因此无法对该请求任务所涉及的微服务进行相应的链路追踪。
发明内容
有鉴于此,本发明实施例提供一种微服务链路追踪的方法及系统,以实现对请求任务涉及的微服务进行链路追踪。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种微服务链路追踪的方法,所述方法包括:
截取请求任务中服务消费端向服务提供端发送的服务请求,所述服务请求包含所述服务消费端对应的请求上下文和映射诊断上下文MDC,所述服务消费端和所述服务提供端为微服务;
确定所述服务请求中是否存在追踪TraceID,所述TraceID为在所述请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中;
若存在,将所述服务请求发送给所述服务提供端,使所述服务提供端响应所述服务请求且将所述TraceID写入自身对应的MDC;
获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,所述第一日志信息由所述服务消费端根据自身对应的MDC中的所述TraceID生成,所述第二日志信息由所述服务提供端根据自身对应的MDC中的所述TraceID生成;
根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪。
优选的,所述获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,包括:
利用ELK工具,提取与所述TraceID对应的所述服务消费端的第一日志信息,以及提取与所述TraceID对应的所述服务提供端的第二日志信息。
优选的,还包括:
若所述服务请求中不存在所述TraceID,将所述TraceID写入所述服务请求中,并执行将所述服务请求发送给所述服务提供端这一步骤。
优选的,所述根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪之后,还包括:
利用Kibana工具,以图形化界面的方式展示与所述TraceID对应的微服务的链路追踪结果。
本发明实施例第二方面公开一种微服务链路追踪的系统,所述系统包括:
截取单元,用于截取请求任务中服务消费端向服务提供端发送的服务请求,所述服务请求包含所述服务消费端对应的请求上下文和映射诊断上下文MDC,所述服务消费端和所述服务提供端为微服务;
确定单元,用于确定所述服务请求中是否存在追踪TraceID,若存在,执行发送单元,所述TraceID为在所述请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中;
所述发送单元,用于将所述服务请求发送给所述服务提供端,使所述服务提供端响应所述服务请求且将所述TraceID写入自身对应的MDC;
获取单元,用于获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,所述第一日志信息由所述服务消费端根据自身对应的MDC中的所述TraceID生成,所述第二日志信息由所述服务提供端根据自身对应的MDC中的所述TraceID生成;
追踪单元,用于根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪。
优选的,所述获取单元具体用于:利用ELK工具,提取与所述TraceID对应的所述服务消费端的第一日志信息,以及提取与所述TraceID对应的所述服务提供端的第二日志信息。
优选的,所述系统还包括:
写入单元,用于若所述服务请求中不存在所述TraceID,将所述TraceID写入所述服务请求中,执行所述发送单元。
优选的,所述系统还包括:
展示单元,用于利用Kibana工具,以图形化界面的方式展示与所述TraceID对应的微服务的链路追踪结果。
本发明实施例第三方面公开一种电子设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如本发明实施例第一方面公开的微服务链路追踪的方法。
本发明实施例第四方面公开一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,用于实现如本发明实施例第一方面公开的微服务链路追踪的方法。
基于上述本发明实施例提供的一种微服务链路追踪的方法及系统,该方法为:截取请求任务中服务消费端向服务提供端发送的服务请求;确定服务请求中是否存在TraceID;若存在,将服务请求发送给服务提供端,使服务提供端响应服务请求且将TraceID写入自身对应的MDC;获取与TraceID对应的服务消费端的第一日志信息和服务提供端的第二日志信息;根据第一日志信息和第二日志信息,对请求任务所涉及的微服务进行链路追踪。本方案中,请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,使请求任务执行过程中所涉及的每一微服务的TraceID相同,从而实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种微服务链路追踪的方法的流程图;
图2为本发明实施例提供的一种微服务链路追踪的系统的结构框图;
图3为本发明实施例提供的一种微服务链路追踪的系统的另一结构框图;
图4为本发明实施例提供的一种微服务链路追踪的系统的又一结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,目前在应用微服务的过程中,应用方式中通常涉及异步调用方式和异步打印日志方式,但在一次请求任务中前述两种方式均存在TraceID不唯一的问题,因此无法对该请求任务所涉及的微服务进行相应的链路追踪。
本发明实施例提供一种微服务链路追踪的方法及系统,在请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,使请求任务执行过程中所涉及的每一微服务的TraceID相同,以实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
参见图1,示出了本发明实施例提供的一种微服务链路追踪的方法的流程图,该方法包括:
步骤S101:截取请求任务中服务消费端向服务提供端发送的服务请求。
需要说明的是,服务请求包含服务消费端对应的请求上下文和映射诊断上下文(Mapped Diagnostic Context,MDC),服务消费端和服务提供端为微服务,即对于一微服务,根据不同的应用场景,该微服务可以为服务消费端也可以为服务提供端。
进一步需要说明的是,在本发明实施例中,采用Dubbo微服务架构对各个微服务进行开发,Dubbo微服务架构中采用RpcContext来存储微服务的请求上下文,并且以Logback日志框架的形式记录各个微服务对应的日志。
请求上下文相当于一个请求对象,其中包含了当前的服务请求的请求参数信息,请求上下文仅在当前的服务请求中可用,当服务请求结束后,该请求上下文也随之消亡。
在具体实现步骤S101的过程中,在请求任务中,当服务消费端向服务提供端发送服务请求时,即当服务消费端需要调用服务提供端时,利用服务拦截器(比如Filter拦截器)在调用服务提供端之前拦截该服务请求。
步骤S102:确定服务请求中是否存在TraceID。若不存在,执行步骤S103,若存在,执行步骤S104。
需要说明的是,TraceID为在请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中。
可以理解的是,由前述内容可知服务消费端和服务提供端均为微服务,也就是在需要调用多个微服务的请求任务中,服务提供端也可转变为服务消费端去调用别的微服务。
TraceID是由请求任务对应的第一个服务消费端所生成的TraceID(该请求任务对应的唯一的TraceID),再由该第一个服务消费端写入自身对应的服务请求中的请求上下文和MDC中。也就是说,在一次请求任务中,第一次调用微服务之前,由服务消费端(第一个调用微服务的服务消费端)生成该请求任务所对应的唯一的TraceID,并将TraceID写入服务消费端对应的请求上下文和MDC中。
需要说明的是,TraceID是由字母和数字组成的唯一的32位字符串,在一次请求任务中,当服务消费端调用服务提供端(即一个微服务调用另外一个微服务)时,将该TraceID向后续的微服务传递,在该请求任务中仅使用唯一的TraceID。
进一步需要说明的是,服务消费端在将TraceID写入请求上下文和MDC中时,通过key-value的形式将TraceID写入请求上下文中,同理,也将TraceID写入MDC中。
由前述内容可知,需要确保请求任务中仅使用唯一的TraceID,在具体实现步骤S102的过程中,拦截服务请求后,确定该服务请求中的请求上下文和MDC中是否存在TraceID。若存在则执行后续步骤,若不存在,则将TraceID写入请求上下文和MDC中,确保服务请求中包含TraceID(唯一的)。
可以理解的是,在请求任务的执行过程中,通常是以多级服务调用的方式调用微服务,每次服务消费端在调用服务提供端之前,服务消费端均需要将TraceID写入自身对应的请求上下文和MDC中。比如:
在请求任务执行过程中,微服务A调用微服务B,微服务B调用微服务C,微服务A(此时为服务消费端)在调用微服务B(此时为服务提供端)时,微服务A需将TraceID写入微服务A对应的请求上下文和MDC中,微服务B(此时为服务消费端)在调用微服务C(此时为服务提供端)时,微服务B需将TraceID(与微服务A的TraceID一致)写入微服务B对应的请求上下文和MDC中。
为保证该请求任务的执行过程中TraceID的唯一,需要在每次服务消费端调用服务提供端时确保服务请求中包含TraceID。
步骤S103:将TraceID写入服务请求中,执行步骤S104。
在具体实现步骤S103的过程中,拦截服务请求之后,若检查确定服务请求中的请求上下文和MDC中未包含TraceID,则将TraceID写入请求上下文和MDC中。
步骤S104:将服务请求发送给服务提供端,使服务提供端响应服务请求且将TraceID写入自身对应的MDC。
在具体实现步骤S104的过程中,在确保服务请求中包含TraceID之后,将该服务请求发送给服务提供端,使该服务提供端响应服务请求。
同时,服务提供端从该服务请求的请求上下文中获取TraceID,并将TraceID记录在自身对应的MDC中,即当该服务提供端需要调用别的微服务时,该服务提供端即为服务消费端,在调用别的微服务时该服务提供端(此时相当于服务消费端)利用该TraceID向被调用的微服务(此时相当于服务提供端)发送相应的服务请求,具体内容可参见上述步骤的内容,在此不再赘述。
步骤S105:获取与TraceID对应的服务消费端的第一日志信息和服务提供端的第二日志信息。
需要说明的是,第一日志信息由服务消费端根据自身对应的MDC中的TraceID生成,第二日志信息由服务提供端根据自身对应的MDC中的TraceID生成。
对于服务消费端或服务提供端而言,根据自身对应的MDC中TraceID的key获取相应的value,从而获取到TraceID。服务消费端或服务提供端根据所获取得到的TraceID进行日志打印,即利用Logback日志框架将包含TraceID的日志信息存储至自身对应的日志文件中,该日志信息至少包括:TraceID、服务器时间戳、服务器IP、服务器应用名、类信息、线程信息和过程信息等信息。
其中,服务器时间戳是指当前应用的服务器的时间,服务器IP是指当前应用的服务器的IP,服务器应用名是部署服务器时所设置的名称,每个服务器的名称唯一。
在具体实现步骤S105的过程中,利用ELK(Elasticsearch、Logstash和Kibana)工具,提取与TraceID对应的服务消费端的第一日志信息,以及提取与TraceID对应的服务提供端的第二日志信息。
也就是说,提取包含该TraceID的所有的日志信息,其中包括了服务消费端和服务提供端对应的包含该TraceID的日志信息,比如:利用ELK日志框架中的FileBeat采集所有包含该TraceID的日志信息。
步骤S106:根据第一日志信息和第二日志信息,对请求任务所涉及的微服务进行链路追踪。
需要说明的是,链路追踪指的是:在一次请求任务中,从该请求任务开始至结束,确定请求任务执行期间所调用的所有系统及耗时,根据链路追踪结果可进一步跟踪和排查问题。
可以理解的是,由前述内容可知,第一日志信息和第二日志信息为请求任务中包含TraceID的所有的日志信息,且该第一日志信息和第二日志信息均包含TraceID、服务器时间戳、服务器IP和服务器应用名等信息。
需要说明的是,对于一请求任务,该请求任务执行过程中的链路路线是固定的,包含TraceID的日志信息中的服务器时间戳可反映执行过程中所调用的微服务的先后关系,服务器IP和服务器应用名可反映执行过程中调用哪一微服务。
因此在具体实现步骤S106的过程中,利用根据TraceID所采集得到的第一日志信息和第二日志信息,即利用所有包含TraceID的日志信息,确定请求任务的执行过程中所调用的微服务和调用时间信息,结合TraceID即可生成相应的链路追踪结果。
也就是说,利用TraceID可追踪请求任务的执行过程中所调用的微服务和调用时间信息,实现对请求任务执行过程中所涉及的微服务进行链路追踪。
优选的,在利用TraceID对请求任务执行过程中所涉及的微服务进行链路追踪之后,利用Kibana工具,以图形化界面的方式展示与TraceID对应的微服务的链路追踪结果。
在具体实现中,可利用FileBeat采集所有的日志信息,然后利用Logstash根据TraceID(需要进行链路追踪的TraceID)对所有的日志信息进行过滤,得到包含该TraceID的所有日志信息(第一日志信息和第二日志信息)。将包含该TraceID的所有日志信息汇集至Elasticsearch中,再通过Kibana(图形化界面工具)查看该TraceID的链路追踪结果。
通过以上方式,在请求任务中应用微服务时,解决异步调用的方式和异步打印日志的方式存在的TraceID不唯一的问题。
在本发明实施例中,请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,使请求任务执行过程中所涉及的每一微服务的TraceID相同,从而实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
与上述本发明实施例提供的一种微服务链路追踪的方法相对应,参见图2,本发明实施例还提供了一种微服务链路追踪的系统的结构框图,该系统包括:截取单元201、确定单元202、发送单元203、获取单元204和追踪单元205;
截取单元201,用于截取请求任务中服务消费端向服务提供端发送的服务请求,服务请求包含服务消费端对应的请求上下文和MDC,服务消费端和服务提供端为微服务。
确定单元202,用于确定服务请求中是否存在TraceID,若存在,执行发送单元203,TraceID为在请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中。
发送单元203,用于将服务请求发送给服务提供端,使服务提供端响应服务请求且将所述TraceID写入自身对应的MDC。
获取单元204,用于获取与TraceID对应的服务消费端的第一日志信息和服务提供端的第二日志信息,第一日志信息由服务消费端根据自身对应的MDC中的TraceID生成,第二日志信息由服务提供端根据自身对应的MDC中的TraceID生成。
在具体实现中,获取单元204具体用于:利用ELK工具,提取与TraceID对应的服务消费端的第一日志信息,以及提取与TraceID对应的服务提供端的第二日志信息。
追踪单元205,用于根据第一日志信息和第二日志信息,对请求任务所涉及的微服务进行链路追踪。
在本发明实施例中,请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,使请求任务执行过程中所涉及的每一微服务的TraceID相同,从而实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
优选的,结合图2,参见图3,示出了本发明实施例提供的一种微服务链路追踪的系统的另一结构框图,该系统还包括:
写入单元206,用于若服务请求中不存在TraceID,将TraceID写入服务请求中,执行发送单元203。
优选的,结合图2,参见图4,示出了本发明实施例提供的一种微服务链路追踪的系统的又一结构框图,该系统还包括:
展示单元207,用于利用Kibana工具,以图形化界面的方式展示与TraceID对应的微服务的链路追踪结果。
优选的,本发明实施例还提供一种电子设备,该电子设备包括:存储器和处理器,其中,存储器用于存储程序,处理器用于执行程序,程序被执行时,具体用于实现如上述本发明实施例提供的微服务链路追踪的方法。
优选的,本发明实施例还提供一种计算机存储介质,用于存储计算机程序,计算机程序被执行时,用于实现如上述本发明实施例提供的微服务链路追踪的方法。
综上所述,本发明实施例提供一种微服务链路追踪的方法及系统,在请求任务开始时由服务消费端生成唯一的TraceID,将该TraceID传递给请求任务执行过程中所涉及的每一微服务,使请求任务执行过程中所涉及的每一微服务的TraceID相同,从而实现根据TraceID对请求任务执行过程中所涉及的微服务进行链路追踪。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种微服务链路追踪的方法,其特征在于,所述方法包括:
截取请求任务中服务消费端向服务提供端发送的服务请求,所述服务请求包含所述服务消费端对应的请求上下文和映射诊断上下文MDC,所述服务消费端和所述服务提供端为微服务;
确定所述服务请求中是否存在追踪TraceID,所述TraceID为在所述请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中;
若存在,将所述服务请求发送给所述服务提供端,使所述服务提供端响应所述服务请求且将所述TraceID写入自身对应的MDC;
获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,所述第一日志信息由所述服务消费端根据自身对应的MDC中的所述TraceID生成,所述第二日志信息由所述服务提供端根据自身对应的MDC中的所述TraceID生成;
根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,包括:
利用ELK工具,提取与所述TraceID对应的所述服务消费端的第一日志信息,以及提取与所述TraceID对应的所述服务提供端的第二日志信息。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述服务请求中不存在所述TraceID,将所述TraceID写入所述服务请求中,并执行将所述服务请求发送给所述服务提供端这一步骤。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪之后,还包括:
利用Kibana工具,以图形化界面的方式展示与所述TraceID对应的微服务的链路追踪结果。
5.一种微服务链路追踪的系统,其特征在于,所述系统包括:
截取单元,用于截取请求任务中服务消费端向服务提供端发送的服务请求,所述服务请求包含所述服务消费端对应的请求上下文和映射诊断上下文MDC,所述服务消费端和所述服务提供端为微服务;
确定单元,用于确定所述服务请求中是否存在追踪TraceID,若存在,执行发送单元,所述TraceID为在所述请求任务开始时由服务消费端生成的唯一标识并由服务消费端写入服务请求中;
所述发送单元,用于将所述服务请求发送给所述服务提供端,使所述服务提供端响应所述服务请求且将所述TraceID写入自身对应的MDC;
获取单元,用于获取与所述TraceID对应的所述服务消费端的第一日志信息和所述服务提供端的第二日志信息,所述第一日志信息由所述服务消费端根据自身对应的MDC中的所述TraceID生成,所述第二日志信息由所述服务提供端根据自身对应的MDC中的所述TraceID生成;
追踪单元,用于根据所述第一日志信息和所述第二日志信息,对所述请求任务所涉及的微服务进行链路追踪。
6.根据权利要求5所述的系统,其特征在于,所述获取单元具体用于:利用ELK工具,提取与所述TraceID对应的所述服务消费端的第一日志信息,以及提取与所述TraceID对应的所述服务提供端的第二日志信息。
7.根据权利要求5所述的系统,其特征在于,所述系统还包括:
写入单元,用于若所述服务请求中不存在所述TraceID,将所述TraceID写入所述服务请求中,执行所述发送单元。
8.根据权利要求5所述的系统,其特征在于,所述系统还包括:
展示单元,用于利用Kibana工具,以图形化界面的方式展示与所述TraceID对应的微服务的链路追踪结果。
9.一种电子设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至权利要求4中任一项所述的微服务链路追踪的方法。
10.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,用于实现如权利要求1至权利要求4中任一项所述的微服务链路追踪的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216196.XA CN112286776A (zh) | 2020-11-04 | 2020-11-04 | 一种微服务链路追踪的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216196.XA CN112286776A (zh) | 2020-11-04 | 2020-11-04 | 一种微服务链路追踪的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286776A true CN112286776A (zh) | 2021-01-29 |
Family
ID=74351269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011216196.XA Pending CN112286776A (zh) | 2020-11-04 | 2020-11-04 | 一种微服务链路追踪的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286776A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822075A (zh) * | 2021-02-01 | 2021-05-18 | 深圳市科漫达智能管理科技有限公司 | 一种业务链路追踪方法及相关装置 |
CN112882919A (zh) * | 2021-03-29 | 2021-06-01 | 浪潮云信息技术股份公司 | 基于log4j的微服务架构的日志链路追踪方法和系统 |
CN113342767A (zh) * | 2021-04-28 | 2021-09-03 | 招银云创信息技术有限公司 | 一种日志生成方法、装置、设备及存储介质 |
CN114281280A (zh) * | 2021-12-31 | 2022-04-05 | 中企云链(北京)金融信息服务有限公司 | 日志处理方法以及装置、存储介质、电子装置 |
CN114448776A (zh) * | 2022-01-28 | 2022-05-06 | 吉林亿联银行股份有限公司 | 一种链路追踪方法及装置 |
CN115314542A (zh) * | 2021-04-21 | 2022-11-08 | 深圳联友科技有限公司 | 基于Socket通信协议的链路追踪方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107018042A (zh) * | 2017-04-13 | 2017-08-04 | 广东神马搜索科技有限公司 | 用于在线服务系统的追踪方法及追踪系统 |
US20190079818A1 (en) * | 2017-09-08 | 2019-03-14 | Oracle International Corporation | Techniques for managing and analyzing log data |
CN110069354A (zh) * | 2019-04-15 | 2019-07-30 | 必成汇(成都)科技有限公司 | 微服务全链路跟踪方法及微服务架构 |
CN110489315A (zh) * | 2019-07-18 | 2019-11-22 | 威富通科技有限公司 | 一种操作请求的跟踪方法、跟踪装置及服务器 |
CN110830577A (zh) * | 2019-11-08 | 2020-02-21 | 深圳前海环融联易信息科技服务有限公司 | 服务请求调用追踪方法、装置、计算机设备及存储介质 |
CN111078432A (zh) * | 2019-12-10 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种服务之间调度的追踪方法及装置 |
CN111625431A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
-
2020
- 2020-11-04 CN CN202011216196.XA patent/CN112286776A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107018042A (zh) * | 2017-04-13 | 2017-08-04 | 广东神马搜索科技有限公司 | 用于在线服务系统的追踪方法及追踪系统 |
US20190079818A1 (en) * | 2017-09-08 | 2019-03-14 | Oracle International Corporation | Techniques for managing and analyzing log data |
CN111625431A (zh) * | 2019-02-28 | 2020-09-04 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
CN110069354A (zh) * | 2019-04-15 | 2019-07-30 | 必成汇(成都)科技有限公司 | 微服务全链路跟踪方法及微服务架构 |
CN110489315A (zh) * | 2019-07-18 | 2019-11-22 | 威富通科技有限公司 | 一种操作请求的跟踪方法、跟踪装置及服务器 |
CN110830577A (zh) * | 2019-11-08 | 2020-02-21 | 深圳前海环融联易信息科技服务有限公司 | 服务请求调用追踪方法、装置、计算机设备及存储介质 |
CN111078432A (zh) * | 2019-12-10 | 2020-04-28 | 深圳前海环融联易信息科技服务有限公司 | 一种服务之间调度的追踪方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822075A (zh) * | 2021-02-01 | 2021-05-18 | 深圳市科漫达智能管理科技有限公司 | 一种业务链路追踪方法及相关装置 |
CN112882919A (zh) * | 2021-03-29 | 2021-06-01 | 浪潮云信息技术股份公司 | 基于log4j的微服务架构的日志链路追踪方法和系统 |
CN115314542A (zh) * | 2021-04-21 | 2022-11-08 | 深圳联友科技有限公司 | 基于Socket通信协议的链路追踪方法及系统 |
CN113342767A (zh) * | 2021-04-28 | 2021-09-03 | 招银云创信息技术有限公司 | 一种日志生成方法、装置、设备及存储介质 |
CN114281280A (zh) * | 2021-12-31 | 2022-04-05 | 中企云链(北京)金融信息服务有限公司 | 日志处理方法以及装置、存储介质、电子装置 |
CN114281280B (zh) * | 2021-12-31 | 2023-08-25 | 中企云链(北京)金融信息服务有限公司 | 日志处理方法以及装置、存储介质、电子装置 |
CN114448776A (zh) * | 2022-01-28 | 2022-05-06 | 吉林亿联银行股份有限公司 | 一种链路追踪方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286776A (zh) | 一种微服务链路追踪的方法及系统 | |
CN112910945B (zh) | 请求链路跟踪方法和业务请求处理方法 | |
US8375122B2 (en) | Web service information management in service-oriented architecture applications | |
US8601443B2 (en) | Method and system for correlating trace data | |
US20080270600A1 (en) | Method for Connection Leak Detection and Prevention | |
CN111176941B (zh) | 一种数据处理的方法、装置和存储介质 | |
CN112448969A (zh) | 链路追踪方法、装置、系统、设备及可读存储介质 | |
CA2982272C (en) | Automatic task tracking | |
US20170126580A1 (en) | Tracking Contention in a Distributed Business Transaction | |
CN111008105A (zh) | 一种分布式系统调用关系可视化方法及装置 | |
CN114221995A (zh) | 服务调用方法、装置及电子设备 | |
CN112540808B (zh) | 一种程序行为层级调用关系的记录方法及相关设备 | |
CN111913764A (zh) | 服务依赖分析方法、电子设备及存储介质 | |
CN110580674B (zh) | 信息处理方法、装置及系统 | |
CN111381847B (zh) | 信息处理方法及设备 | |
CN113946491A (zh) | 微服务数据处理方法、装置、计算机设备及存储介质 | |
CN107395663B (zh) | 数据获取方法及装置 | |
CN113760562A (zh) | 链路追踪方法、装置、系统、服务器和存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN116521552A (zh) | 一种测试缺陷的获取方法、装置、设备及可读存储介质 | |
CN114884804A (zh) | 基于微服务的多渠道信息隔离方法、装置和计算机设备 | |
CN114448776A (zh) | 一种链路追踪方法及装置 | |
CN113741912A (zh) | 模型管理系统、方法、装置及设备 | |
CN113986955B (zh) | 业务链的确定方法、装置、电子设备及介质 | |
CN111381985B (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 |