一种微服务日志链路追踪方法与系统技术方案

技术编号:32970708 阅读:30 留言:0更新日期:2022-04-09 11:36
本发明专利技术给出了一种微服务日志链路追踪方法与系统,包括拦截上游服务端的请求,获取请求头,根据请求头生成唯一的调用链ID并获取对应的父服务名称,保存调用链ID以及父服务名称;当请求调用其他服务时,根据调用其他服务的方式选择相应的配置方式,同时将调用链ID和父服务名称加在请求头上;基于统一的日志格式以及日志标准创建业务日志,根据日志格式将调用链ID和父服务名称编写为各个服务之间的调用关系,并将调用关系记录在业务日志中;当进行服务链路追踪时,根据该服务的请求中的Traceld查询链路上的所有业务日志,解析业务日志得到该服务的请求的完整的服务调用链路。本发明专利技术可以快速定位故障,实现了对各业务线进行针对性的分析和统计。行针对性的分析和统计。行针对性的分析和统计。

【技术实现步骤摘要】
一种微服务日志链路追踪方法与系统


[0001]本专利技术涉及微服务架构
,尤其是一种微服务日志链路追踪方法与系统。

技术介绍

[0002]微服务架构是一个分布式架构,系统中的各个微服务可以被独立部署,每个服务仅仅关注并完成一个业务方向,所以,一个复杂的系统往往由多个微服务组成。由于微服务数量众多,业务的复杂性,主要体现在,一个请求可能需要调用很多服务,而多个服务间又相互调用,如果出现错误和异常,定位故障点非常困难。因此,在微服务架构中,必须实现分布式服务链路追踪,通过调用链结合业务日志快速定位错误信息。

技术实现思路

[0003]本专利技术提出了一种微服务日志链路追踪方法与系统,以解决上文提到的现有技术的缺陷。
[0004]在一个方面,本专利技术提出了一种微服务日志链路追踪方法,该方法包括以下步骤:
[0005]S1:拦截上游服务端的请求,获取请求头,根据所述请求头生成唯一的调用链ID并获取对应的父服务名称,保存所述调用链ID以及所述父服务名称;
[0006]S2:在处理所述请求的过程中,当所述请求本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种微服务日志链路追踪方法,其特征在于,包括以下步骤:S1:拦截上游服务端的请求,获取请求头,根据所述请求头生成唯一的调用链ID并获取对应的父服务名称,保存所述调用链ID以及所述父服务名称;S2:在处理所述请求的过程中,当所述请求调用其他服务时,根据调用其他服务的方式选择相应的配置方式,同时将所述调用链ID和所述父服务名称加在所述请求头上;S3:基于统一的日志格式以及日志标准创建业务日志,根据所述日志格式将所述调用链ID和所述父服务名称编写为各个服务之间的调用关系,并将所述调用关系记录在所述业务日志中;S4:当进行服务链路追踪时,根据该服务的请求中的TraceId查询链路上的所有所述业务日志,解析所述业务日志得到该服务的请求的完整的服务调用链路。2.根据权利要求1所述的方法,其特征在于,所述S1还包括:拦截上游服务端的请求,获取请求头后,先判断所述请求是否是web端请求,若是则根据所述请求头生成唯一的调用链ID。3.根据权利要求1所述的方法,其特征在于,所述根据所述请求头生成唯一的调用链ID并获取对应的父服务名称,具体包括:判断所述请求头的参数是否为空;若是,则将所述请求作为第一次访问的请求,根据所述请求头生成唯一的调用链ID,同时给父服务名称取默认值;若否,则将所述请求作为其他服务调用的请求,将所述请求头中的X

TraceId参数作为调用链ID,将所述请求头中的X

ParentName参数作为父服务名称。4.根据权利要求1所述的方法,其特征在于,所述保存所述调用链ID以及所述父服务名称,具体包括:通过MDC.put()方法将所述调用链ID以及所述父服务名称保存在MDC中。5.根据权利要求1所述的方法,其特征在于,所述拦截上游服务端的请求具体包括:通过在拦截器、注解和过滤器进行代码埋点的方式拦截上游服务端的请求。6.根据权利要求1所述的方法,其特征在于,所述S2具体包括:当调用其他服务的方式为feign方式时,所述配置方式为:编写feign请求拦截类,实现RequestInterceptor接口,重写apply()方法,在方法中添加X

TraceId和X

ParentName请求头参数...

【专利技术属性】
技术研发人员:罗华辉陈贵民陈思德许光锋郑汉军黄焮
申请(专利权)人:厦门安胜网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1