CN115328734A - 跨服务的日志处理方法、装置及服务器 - Google Patents

跨服务的日志处理方法、装置及服务器 Download PDF

Info

Publication number
CN115328734A
CN115328734A CN202210997755.8A CN202210997755A CN115328734A CN 115328734 A CN115328734 A CN 115328734A CN 202210997755 A CN202210997755 A CN 202210997755A CN 115328734 A CN115328734 A CN 115328734A
Authority
CN
China
Prior art keywords
service
identifier
message
target service
log
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
Application number
CN202210997755.8A
Other languages
English (en)
Inventor
黄关键
李秀斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sunshine Life Insurance Co ltd
Original Assignee
Sunshine Life Insurance Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sunshine Life Insurance Co ltd filed Critical Sunshine Life Insurance Co ltd
Priority to CN202210997755.8A priority Critical patent/CN115328734A/zh
Publication of CN115328734A publication Critical patent/CN115328734A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种跨服务的日志处理方法、装置及服务器,涉及微服务架构的技术领域,该方法包括:响应针对于目标服务的业务请求操作,通过追踪组件追踪业务请求操作对应的消息;该消息携带有发送方服务对应的第一标识;提取第一标识,以及,获取目标服务的第二标识;通过输出组件将追踪到的消息、第一标识和第二标识进行关联,并记录至预设日志。本发明提供的跨服务的日志处理方法、装置及服务器,由于日志中记录的消息的发送方服务的第一标识和目标服务的第二标识,因此,可以通过日志有效记录消息的传递情况,实现消息链路的追踪,并能够在业务流程出现异常时,通过日志快速进行分析定位,提高了整个系统的安全性和业务效率。

Description

跨服务的日志处理方法、装置及服务器
技术领域
本发明涉及微服务架构的技术领域,尤其是涉及一种跨服务的日志处理方法、装置及服务器。
背景技术
目前,对于跨服务的链路追踪实现很多,但是大部分都是基于微服务或共同系统框架的前提下,且绑定了对链路分析的场景。
并且,随着微服务架构技术的不断深化,很多业务系统都逐渐进行了分布式和高可用的改造,带来的问题是以前一个单应用系统处理的业务现在需要多个专门的微服务或子系统来处理,一旦在业务流程中出现异常,很难定位到具体是哪个环节出了问题。
发明内容
有鉴于此,本发明的目的在于提供一种跨服务的日志处理方法、装置及服务器,以缓解上述技术问题。
第一方面,本发明实施例提供了一种跨服务的日志处理方法,应用于目标服务,所述目标服务为跨服务业务中的任意一个服务,且,所述目标服务配置有基于http协议的追踪组件、标识组件和输出组件,所述方法包括:响应针对于目标服务的业务请求操作,通过所述追踪组件追踪所述业务请求操作对应的消息;其中,所述消息携带有发送方服务对应的第一标识;提取所述第一标识,以及,获取所述目标服务的第二标识;通过所述输出组件将追踪到的所述消息、所述第一标识和所述第二标识进行关联,并记录至预设日志。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,上述第二标识为所述标识组件生成的用于标记所述目标服务的唯一标识;获取所述目标服务的第二标识的步骤,包括:从预设数据库中查找是否有所述目标服务的第二标识;如果是,则提取所述目标服务的第二标识;如果否,按照预设的标识生成算法,生成所述目标服务对应的第二标识;提取生成的所述第二标识,并将生成的所述第二标识与所述目标服务关联存储至所述预设数据库。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,上述方法还包括:响应针对于所述目标服务的消息发送操作,提取所述目标服务对应的第二标识;将所述第二标识添加至所述消息发送操作对应的消息的头信息,并将所述消息发送至接收方服务;以及,通过所述输出组件将所述消息记录至预设日志。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,上述将所述第二标识添加至所述消息发送操作对应的消息的头信息的步骤,还包括:判断所述目标服务是否是消息的起始服务;如果是,将所述第二标识添加至所述消息发送操作对应的消息的头信息;如果否,生成所述目标服务所在的调用链信息,其中,所述调用链信息记载有多个服务的请求顺序,以及每个所述服务的标识;基于所述调用链信息,将所述第二标识,以及,所述调用链信息的请求顺序中,位于所述目标服务之前的服务的标识添加至所述消息发送操作对应的消息的头信息。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,上述生成所述目标服务所在的调用链信息的步骤,包括:通过所述追踪组件在所述跨服务业务中基于所述第一标识追踪所有的服务;基于所述追踪组件的追踪结果生成所述调用链信息,所述调用链信息包括所述目标服务。
结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,上述通过所述输出组件将所述消息记录至预设日志的步骤,包括:通过所述输出组件将所述消息,所述目标服务的第二标识,以及所述目标服务所在的调用链信息进行关联;将关联的结果记录至预设日志,以及,将所述预设日志保存至日志数据库。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,上述方法还包括:响应针对于所述跨服务业务的配置操作;将所述追踪组件、所述标识组件和所述输出组件配置到所述服务中;通过所述标识组件生成每个所述服务的标识;将所述服务与所述标识关联存储至所述预设数据库。
结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第七种可能的实施方式,其中,上述方法还包括:响应日志查询操作,在所述日志数据库中查找所述日志查询操作对应的日志;将查找到的所述日志,所述日志关联的服务的标识,以及所述服务的调用链作为所述日志查询操作对应的结果进行呈现。
第二方面,本发明实施例还提供一种跨服务的日志处理装置,应用于目标服务,所述目标服务为跨服务业务中的任意一个服务,且,所述目标服务配置有基于http协议的追踪组件、标识组件和输出组件,所述装置包括:追踪模块,用于响应针对于目标服务的业务请求操作,通过所述追踪组件追踪所述业务请求操作对应的消息;其中,所述消息携带有发送方服务对应的第一标识;提取模块,用于提取所述第一标识,以及,获取所述目标服务的第二标识;记录模块,用于通过所述输出组件将追踪到的所述消息、所述第一标识和所述第二标识进行关联,并记录至预设日志。
第三方面,本发明实施例还提供一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面所述的方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的跨服务的日志处理方法、装置及服务器,能够响应针对于目标服务的业务请求操作,通过追踪组件追踪业务请求操作对应的消息;由于该消息携带有发送方服务对应的第一标识;因此,能够提取第一标识,以及,获取目标服务的第二标识;通过输出组件将追踪到的消息、第一标识和第二标识进行关联,并记录至预设日志,由于日志中记录的消息的发送方服务的第一标识和目标服务的第二标识,因此,可以通过日志有效记录消息的传递情况,实现消息链路的追踪,并能够在业务流程出现异常时,通过日志快速进行分析定位,提高了整个系统的安全性和业务效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨服务的日志处理方法的流程图;
图2为本发明实施例提供的一种日志追踪的整体流程图;
图3为本发明实施例提供的一种跨服务的日志处理装置的结构示意图;
图4为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,由于很多业务系统都逐渐进行了分布式和高可用的改造,带来的问题是以前一个单应用系统处理的业务现在需要多个专门的微服务或子系统来处理,即,产生许多复杂的跨服务或跨系统的冗长业务,在该种业务场景下,一旦出现问题,就会出现定位难,耗时长的问题。
基于此,本发明实施例提供的一种跨服务的日志处理方法、装置及服务器,可以通过统一的追踪、标识、输出组件来实现日志的链路跟踪,不依赖微服务或共同系统框架,实现了跨服务或子系统的业务调用链的记录,进而缓解上述技术问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种跨服务的日志处理方法进行详细介绍。
在一种可能的实施方式中,本发明实施例提供了一种跨服务的日志处理方法,具体地,该方法应用于目标服务,该目标服务为跨服务业务中的任意一个服务,且,目标服务配置有基于http协议的追踪组件、标识组件和输出组件。
在实际使用时,上述业务通常指的是某种应用系统需要处理的业务,服务通常指的是多个微服务或者子系统,这些多个微服务或者子系统通常会构成分布式系统架构,以实现应用系统的跨服务业务。例如,保险业务、银行业务等等,需要多个专门的微服务或者子系统,来实现用户的登录、业务办理等,本发明实施例中,为了便于对业务流程的追踪和定位,可以在每个需要参与追踪的服务中引入上述基于http协议的追踪组件、标识组件和输出组件,以便于实现跨服务或者子系统的业务调用链的记录。
具体地,图1示出了一种跨服务的日志处理方法的流程图,如图1所示,该方法包括以下步骤:
步骤S102,响应针对于目标服务的业务请求操作,通过追踪组件追踪业务请求操作对应的消息;
其中,上述消息携带有发送方服务对应的第一标识,以便于追踪组件进行追踪。
在实际使用时,上述发送方服务也是跨服务业务中的任意一个服务,此时上述目标服务作为接收方服务,可以响应发送方服务发送的消息,而上述接收方服务和发送方服务通常都是相对而言的,在业务往来过程中,一个服务既可以是接受方服务,也可以是发送方服务,具体以实际使用情况为准,本发明实施例对此不进行限制。
进一步,上述业务请求操作通常指的是根据业务需求向目标服务发起的业务请求,该业务请求操作可以是用户从页面输入的请求,也可以是由第三方接口调用时生成的业务请求,进一步,该业务请求的具体内容,可以是包括多个服务的A系统向B系统发出的请求,也可以是同一个系统中A服务向B服务发出的请求,还可以是系统前端请求系统后端发出的请求,只要是对应的目标服务配置有上述追踪组件、标识组件和输出组件,均可以通过本发明实施例提供的跨服务的日志处理方法进行处理。
当目标服务监测到该业务请求时,可以响应该业务请求操作,以便于执行本发明实施例提供的跨服务的日志处理方法。
步骤S104,提取第一标识,以及,获取目标服务的第二标识;
步骤S106,通过输出组件将追踪到的消息、第一标识和第二标识进行关联,并记录至预设日志。
在实际使用时,上述第一标识指的是发送方服务的唯一标识,该唯一标识通常由标识组件生成,上述第二标识为标识组件生成的用于标记目标服务的唯一标识。
本发明实施例中,在步骤S102中,由追踪组件追踪到消息后,可以将该消息,以及该消息的发送方服务的第一标识和作为接收方服务的目标服务的第二标识进行关联,可以对消息本身,以及该消息的发送方和接收方均记录至预设日志,便于后续的追踪和查询,并且整个过程并不依赖于系统框架和具体的业务场景,只要是需要参与链路追踪的服务,都可以引入上述追踪组件、标识组件和输出组件,
因此,本发明实施例提供的方法还包括:响应针对于跨服务业务的配置操作;将追踪组件、标识组件和输出组件配置到服务中;通过标识组件生成每个服务的标识;并将服务与标识关联存储至预设数据库。
并且,在配置上述各个组件时,为了便于将上述追踪组件、标识组件和输出组件整合进相应的服务,可以将追踪组件、标识组件和输出组件进行打包处理,实现轻量级的应用,并占用较少资源,可以在很短的时间内整合进服务或者系统应用,且对主业务功能的效率影响基本可忽略不计。
本发明实施例提供的跨服务的日志处理方法,能够响应针对于目标服务的业务请求操作,通过追踪组件追踪业务请求操作对应的消息;由于该消息携带有发送方服务对应的第一标识;因此,能够提取第一标识,以及,获取目标服务的第二标识;通过输出组件将追踪到的消息、第一标识和第二标识进行关联,并记录至预设日志,由于日志中记录的消息的发送方服务的第一标识和目标服务的第二标识,因此,可以通过日志有效记录消息的传递情况,实现消息链路的追踪,并能够在业务流程出现异常时,通过日志快速进行分析定位,提高了整个系统的安全性和业务效率。
在实际使用时,由于上述第二标识为标识组件生成的用于标记目标服务的唯一标识;因此,通常该第二标识可以在目标服务引入上述追踪组件、标识组件和输出组件时,就通过标识组件生成,以便于用于标记该目标服务,因此,上述步骤S104中,在获取该目标服务的第二标识时,可以先从预设数据库中查找是否有目标服务的第二标识;如果是,则直接提取该目标服务的第二标识;如果否,则需要先按照预设的标识生成算法,生成目标服务对应的第二标识;然后再提取该生成的第二标识,并将生成的第二标识与目标服务关联存储至预设数据库。
具体实现时,上述预设数据库可以是一个全局数据库,记载有整个业务所涉及的所有服务,以及每个服务的标识;还可以是目标服务本身配置的数据库,仅用于存储该目标服务的标识,具体的数据库设置情况可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
进一步,对于上述目标服务,除了接收业务请求操作对应的消息,在业务往来过程中,还可以作为发送方服务来发送消息,此时,目标服务还可以响应针对于该目标服务的消息发送操作,提取目标服务对应的第二标识;将第二标识添加至消息发送操作对应的消息的头信息,并将消息发送至接收方服务;以及,通过输出组件将消息记录至预设日志。
具体地,目标服务作为发送方服务,由于配置有上述追踪组件、标识组件和输出组件,为了便于接收方服务对消息进行追踪,在发送消息时,也需要在消息中打上目标服务的标识,即本发明实施例的上述第二标识。具体地,在消息中打入标识时,是放在消息的头信息中,如header信息,以便于接收方服务在接收到该消息时,能够调用追踪组件,并通过过滤器分析header信息,以便于判断是否携带有合法的标识。
并且,对于发出的消息,也可以通过输出组件将消息记录至预设日志,便于进行消息链路的记录和追踪。
进一步,在将第二标识添加至消息发送操作对应的消息的头信息时,还需要判断当前目标服务是否是消息的起始服务;即,判断当前目标服务是否是业务起点,如果是,则直接将第二标识添加至消息发送操作对应的消息的头信息;如果否,则需要生成目标服务所在的调用链信息,其中,该调用链信息记载有多个服务的请求顺序,以及每个服务的标识;然后基于该调用链信息,将第二标识,以及,调用链信息的请求顺序中,位于目标服务之前的服务的标识添加至消息发送操作对应的消息的头信息。
具体地,对于非业务起点,需要沿用之前服务的标识,并将目标服务添加至调用链的节点,当后续服务生成调用链信息时,可以通过追踪组件追踪到目标服务,而在生成目标服务所在的调用链信息时,也是通过追踪组件实现的,具体地,是通过追踪组件在跨服务业务中基于第一标识追踪所有的服务;即追踪目标服务之前的服务,由于目标服务作为接收方响应业务请求操作时,接收的消息携带有第一标识,因此,此时,追踪组件进行追踪时,也需要基于第一标识进行追踪,以便于追踪到目标服务之前的服务,并基于追踪组件的追踪结果生成调用链信息,并将目标服务添加至调用链的节点,此时,调用链信息包括目标服务。
因此,对于业务起点,在发送消息时,只需将自身的标识加入到消息的头信息中,对于非业务起点,需要沿用之前服务的标识,以使之前所有服务的标识都添加至消息的头信息,这样输出组件在将消息输出至预设日志时,就会记录该消息的来源以及消息的发送路径,实现消息的有效追踪。
具体地,输出组件在记录消息时,可以通过输出组件将消息,目标服务的第二标识,以及目标服务所在的调用链信息进行关联;然后将关联的结果记录至预设日志,以及,将预设日志保存至日志数据库。
为了便于理解,基于上述追踪组件、标识组件和输出组件,图2示出了一种日志追踪的整体流程图,对本发明实施例提供的跨服务的日志处理方法包括的业务往来中的业务请求和消息发送的过程进行进一步说明。具体地,如图2所示。
本发明实施例中,假设整个跨服务业务所涉及的服务都需要参与链路追踪,因此,所有服务都引入上述追踪组件、标识组件和输出组件,即图2中的追踪组件10、标识组件20和输出组件30,具体包括以下流程:
(1)在服务监测到有消息进入时,首先调用追踪组件,由于追踪组件、标识组件和输出组件都是基于http协议实现的,因此,此时消息对应的业务请求通常也都是http请求,此时,可以通过过滤器处理跨服务或者子系统的追踪任务,例如,可以通过过滤器分析http请求对应的消息的头信息,即header信息,判断是否有合法的标识。如果是,则提取该标识,并获取当前服务本身的标识;通过输出组件将追踪到的消息、以及服务的标识输出至日志进行记录。
通常,对于业务起点,在消息的头信息中不会携带有标识,或者服务本身的标识也没有,此时,可以调用标识组件去生成该服务的唯一标识,以便于在发送消息时,将标识添加进消息的头信息,并便于输出组件进行记录。对于非业务起点,可以直接沿用头信息中的标识,并把服务本身标识添加进调用链的节点,以便于下一个服务的追踪组件进行追踪并生成调用链。
此外,追踪组件除了追踪上述http请求,还有一些特殊情况,即图2中的特殊处理任务,如,消息并不是通过http请求发起的,例如常见的定时任务场景,又或者多线程、异步线程场景,不同的业务场景实现的思路都不同,所以不能保证都会被过滤器捕获,所以对于这类业务场景需要手动维护一个注解,才能保证调用链的节点信息是完整的,这个注解和过滤器的区别在于,标识存在时,需要从父线程获取该标识,以便于在输出日志时,可以通过输出组件进行输出。
(2)标识组件的主要作用是生成服务的唯一标识。
具体实现时,上述追踪组件追踪到消息,以及输出组件输出日志时,都是依赖于该标识组件生成的服务的唯一标识。
在该标识组件中,通常维护了三个类,分别是:处理标识,处理调用链信息,处理加密与验证。
具体地,处理标识,指的是生成上述服务的唯一标识。通常,默认提供随机生成方法,如,uuid+时间戳,也可以自定义规则和标识的key值,但是需要保证多个追踪组件的应用规则一致。
处理调用链则是将标识以json数组的格式维护在消息的头信息header中,如call_chain:{Traceid:[a,b,c,d,a]},这里的call_chain是header信息中的key值,具体的调用链信息需要使用标识取出来,例子中的含义是从a服务->b服务->c服务->d服务->a服务,这里最后的a服务并不是指回调,而是再次从d服务向a服务发起了消息请求,该方法只处理请求信息,对于回调的信息,只会将维护后的调用链和标识携带上,不做其他处理。
最后加密与验证部分,则默认是通过代码内部维护的盐对调用链进行加密,加密串存储在call_chain信息中,加密方法可以根据实际需要进行设置,当收到业务请求时,会将标识加调用链字符串使用加密方法生成加密串,与call_chain中维护的加密串进行比对,防止该信息被篡改,如果担心调用链信息泄露,也同时提供对调用链加密的方法,具体的加密方式可以根据实际使用情况进行设置,本发明实施例对此不进行限制。
(3)输出组件在实际使用时,实际有两个输出目标:
一个是输出到日志,即上述将追踪组件追踪到的消息,以及相应服务的标识输出至预设日志,以便于方便通过分析日志,找到调用路径和定位具体的问题是哪个服务或者应用产生的。
当开启追踪组件时,就会将服务的标识维护到全局日志门面的NDC(NestedDiagnostic Context)和MDC(Mapped Diagnositc Context)对象中,具体的系统应用只需要维护日志生成规则,添加标识的属性,即可实现日志追踪。
第二个输出目标则是数据库,即,输出到数据库,将消息对应的发送方和接收方的服务的标识、以及包含服务的调用链信息,存入数据库。具体地,可以以标识作为key值,调用链信息作为value,进行持久化保存,便于对调用链信息进行调用和分析。
上述具体的输出目标,可以根据实际的系统应用做到按需部署,例如,对于中小型项目,数据库的负载不大的情况下,可以适用默认的实现方法:对于调用链的开始节点,在数据库中新增数据,后续节点更新该标识对应的数据,来添加节点信息,对于大型项目或是并发量比较大的项目,直接对数据库进行大量写操作是不合理也是不必要的,因此可以提供基于redis缓存+数据防抖来实现定期的批次持久化方案,此方案的优点在于降低了数据库的压力,缺点在于需要依赖共同的缓存数据库,如redis。
因此,上述数据库可以支持调用链信息的加密和持久化,保证数据安全性的同时,便于数据分析。具体的使用情况可以根据实际使用进行设置,本发明实施例对此不进行限制。
此外,对于配置有上述输出组件的服务,还可以进一步响应日志查询操作,在日志数据库中查找日志查询操作对应的日志;将查找到的日志,日志关联的服务的标识,以及服务的调用链作为日志查询操作对应的结果进行呈现。
因此,基于上述追踪组件、标识组件和输出组件,本发明实施例提供的跨服务的日志处理方法,可以基于http协议,通过在header信息上记录标识,再通过统一的追踪、标识、输出组件来实现日志的链路跟踪,不依赖微服务或共同系统框架,实现了跨服务或子系统的业务调用链的记录,同时,还可以提供数据加密支持,可以防止调用链信息被篡改,进一步提高了服务的安全性。
进一步,在上述实施例的基础上,本发明实施例还提供了一种跨服务的日志处理装置,应用于目标服务,所述目标服务为跨服务业务中的任意一个服务,且,所述目标服务配置有基于http协议的追踪组件、标识组件和输出组件,如图3所示的一种跨服务的日志处理装置的结构示意图,该装置包括:
追踪模块32,用于响应针对于目标服务的业务请求操作,通过所述追踪组件追踪所述业务请求操作对应的消息;其中,所述消息携带有发送方服务对应的第一标识;
提取模块34,用于提取所述第一标识,以及,获取所述目标服务的第二标识;
记录模块36,用于通过所述输出组件将追踪到的所述消息、所述第一标识和所述第二标识进行关联,并记录至预设日志。
本发明实施例提供的跨服务的日志处理装置,与上述实施例提供的跨服务的日志处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
进一步,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
进一步,本发明实施例还提供了一种服务器的结构示意图,如图4所示,为该服务器的结构示意图,其中,该服务器包括处理器41和存储器40,该存储器40存储有能够被该处理器41执行的计算机可执行指令,该处理器41执行该计算机可执行指令以实现上述方法。
在图4示出的实施方式中,该服务器还包括总线42和通信接口43,其中,处理器41、通信接口43和存储器40通过总线42连接。
其中,存储器40可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线42可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器中的信息,结合其硬件完成前述方法。
本发明实施例所提供的跨服务的日志处理方法、装置及服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种跨服务的日志处理方法,其特征在于,应用于目标服务,所述目标服务为跨服务业务中的任意一个服务,且,所述目标服务配置有基于http协议的追踪组件、标识组件和输出组件,所述方法包括:
响应针对于目标服务的业务请求操作,通过所述追踪组件追踪所述业务请求操作对应的消息;其中,所述消息携带有发送方服务对应的第一标识;
提取所述第一标识,以及,获取所述目标服务的第二标识;
通过所述输出组件将追踪到的所述消息、所述第一标识和所述第二标识进行关联,并记录至预设日志。
2.根据权利要求1所述的方法,其特征在于,所述第二标识为所述标识组件生成的用于标记所述目标服务的唯一标识;
获取所述目标服务的第二标识的步骤,包括:
从预设数据库中查找是否有所述目标服务的第二标识;
如果是,则提取所述目标服务的第二标识;
如果否,按照预设的标识生成算法,生成所述目标服务对应的第二标识;提取生成的所述第二标识,并将生成的所述第二标识与所述目标服务关联存储至所述预设数据库。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应针对于所述目标服务的消息发送操作,提取所述目标服务对应的第二标识;
将所述第二标识添加至所述消息发送操作对应的消息的头信息,并将所述消息发送至接收方服务;以及,
通过所述输出组件将所述消息记录至预设日志。
4.根据权利要求3所述的方法,其特征在于,将所述第二标识添加至所述消息发送操作对应的消息的头信息的步骤,还包括:
判断所述目标服务是否是消息的起始服务;
如果是,将所述第二标识添加至所述消息发送操作对应的消息的头信息;
如果否,生成所述目标服务所在的调用链信息,其中,所述调用链信息记载有多个服务的请求顺序,以及每个所述服务的标识;
基于所述调用链信息,将所述第二标识,以及,所述调用链信息的请求顺序中,位于所述目标服务之前的服务的标识添加至所述消息发送操作对应的消息的头信息。
5.根据权利要求4所述的方法,其特征在于,生成所述目标服务所在的调用链信息的步骤,包括:
通过所述追踪组件在所述跨服务业务中基于所述第一标识追踪所有的服务;
基于所述追踪组件的追踪结果生成所述调用链信息,所述调用链信息包括所述目标服务。
6.根据权利要求4所述的方法,其特征在于,通过所述输出组件将所述消息记录至预设日志的步骤,包括:
通过所述输出组件将所述消息,所述目标服务的第二标识,以及所述目标服务所在的调用链信息进行关联;
将关联的结果记录至预设日志,以及,将所述预设日志保存至日志数据库。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应针对于所述跨服务业务的配置操作;
将所述追踪组件、所述标识组件和所述输出组件配置到所述服务中;
通过所述标识组件生成每个所述服务的标识;
将所述服务与所述标识关联存储至所述预设数据库。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应日志查询操作,在所述日志数据库中查找所述日志查询操作对应的日志;
将查找到的所述日志,所述日志关联的服务的标识,以及所述服务的调用链作为所述日志查询操作对应的结果进行呈现。
9.一种跨服务的日志处理装置,其特征在于,应用于目标服务,所述目标服务为跨服务业务中的任意一个服务,且,所述目标服务配置有基于http协议的追踪组件、标识组件和输出组件,所述装置包括:
追踪模块,用于响应针对于目标服务的业务请求操作,通过所述追踪组件追踪所述业务请求操作对应的消息;其中,所述消息携带有发送方服务对应的第一标识;
提取模块,用于提取所述第一标识,以及,获取所述目标服务的第二标识;
记录模块,用于通过所述输出组件将追踪到的所述消息、所述第一标识和所述第二标识进行关联,并记录至预设日志。
10.一种服务器,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-8任一项所述的方法的步骤。
CN202210997755.8A 2022-08-19 2022-08-19 跨服务的日志处理方法、装置及服务器 Pending CN115328734A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210997755.8A CN115328734A (zh) 2022-08-19 2022-08-19 跨服务的日志处理方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210997755.8A CN115328734A (zh) 2022-08-19 2022-08-19 跨服务的日志处理方法、装置及服务器

Publications (1)

Publication Number Publication Date
CN115328734A true CN115328734A (zh) 2022-11-11

Family

ID=83926107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210997755.8A Pending CN115328734A (zh) 2022-08-19 2022-08-19 跨服务的日志处理方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN115328734A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117632445A (zh) * 2024-01-25 2024-03-01 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117632445A (zh) * 2024-01-25 2024-03-01 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置
CN117632445B (zh) * 2024-01-25 2024-04-30 杭州阿里云飞天信息技术有限公司 请求处理方法以及装置、任务执行方法以及装置

Similar Documents

Publication Publication Date Title
WO2020259003A1 (zh) 一种链路追踪方法及装置
CN114185708A (zh) 基于分布式链路追踪的数据分析方法、装置和电子设备
CN108462598B (zh) 一种日志生成方法、日志分析方法及装置
WO2019019394A1 (zh) 客户端异常定位方法、装置、计算机设备和存储介质
US11809406B2 (en) Event records in a log file
CN110489315B (zh) 一种操作请求的跟踪方法、跟踪装置及服务器
CN114208114B (zh) 每参与者的多视角安全上下文
WO2021174870A1 (zh) 网络安全风险检测方法、系统、计算机设备和存储介质
CN109284331B (zh) 基于业务数据资源的制证信息获取方法、终端设备及介质
CN113420032A (zh) 一种日志的分类存储方法及装置
CN110830500B (zh) 网络攻击追踪方法、装置、电子设备及可读存储介质
CN114817968A (zh) 无特征数据的路径追溯方法、装置、设备及存储介质
CN115328734A (zh) 跨服务的日志处理方法、装置及服务器
CN112350890B (zh) 报文处理方法、装置、服务器及存储介质
CN113098852B (zh) 一种日志处理方法及装置
CN108650123B (zh) 故障信息记录方法、装置、设备和存储介质
CN111046393B (zh) 漏洞信息上传方法、装置、终端设备及存储介质
CN116993523A (zh) 配置化对账方法、装置、设备及存储介质
US20140337069A1 (en) Deriving business transactions from web logs
JP2017199250A (ja) 計算機システム、データの分析方法、及び計算機
WO2021129849A1 (zh) 日志处理方法、装置、设备和存储介质
CN112818204B (zh) 一种业务的处理方法、装置、设备及存储介质
CN114371866A (zh) 业务系统的版本重构测试方法、装置和设备
CN111353116A (zh) 内容检测方法、系统及设备、客户端设备和存储介质
CN114818645B (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