一种分布式调用链跟踪方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:23983047 阅读:11 留言:0更新日期:2020-04-29 12:13
本发明专利技术公开了一种分布式调用链跟踪方法、装置、计算机设备及存储介质,方法包括:当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;通过zipkin的界面形式展示本次请求的调用链监控数据。本发明专利技术可根据调用链ID追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,从而提高故障定位速度。

A distributed call chain tracing method, device, computer equipment and storage medium

【技术实现步骤摘要】
一种分布式调用链跟踪方法、装置、计算机设备及存储介质
本专利技术涉及分布式服务
,尤其涉及一种分布式调用链跟踪方法、装置、计算机设备及存储介质。
技术介绍
在分布式服务化框架下,分布式服务间存在相互依赖,需彼此协同来完成各类业务场景。例如,从前端发起一个请求,到最后的业务完成,需要经过很多环节,这些环节可能都是分布式服务的方式提供,并部署在不同的服务器上进行。而在这种复杂的分布式服务场景下,为了定位问题、性能瓶颈查询、异常日志跟踪等,一般都需要服务追踪和分析工具的帮助。目前大多是使用zipkin,zipkin是由Twitter公司开源的一个分布式跟踪系统,致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。它主要是定位服务中的哪个问题导致超时,同时通过服务调用链路能够快速定位系统的性能瓶颈。zipkin以Trace(调用链)结构表示对一次请求的追踪,又把每个Trace拆分为若干个有依赖关系的Span(调用上下文对象)。在微服务架构中,一次用户请求可能会由后台若干个服务负责处理,那么每个处理请求的服务就可以理解为一个Span,当然这个服务也可能继续请求其他的服务,因此Span是一个树形结构。zipkin虽然能够定位服务中的哪个问题导致超时,同时通过服务调用链路能够快速定位系统的性能瓶颈,但是不能采集服务的日志信息,比如错误日志、请求的服务参数、处理结果以及每个调用请求所执行的全部sql(结构化查询语言)语句。鉴于现有技术存在的上述问题,因此有必要对现有技术进行优化和改进。
技术实现思路
本专利技术实施例提供了一种分布式调用链跟踪方法、装置、计算机设备及存储介质,旨在解决现有的分布式调用链跟踪方法不能采集服务的日志信息的问题。第一方面,本专利技术实施例提供一种分布式调用链跟踪方法,其包括:当用户发送请求时,通过拦截器进行埋点,得到全局唯一的调用链ID,并控制所述调用链ID伴随所述请求的调用链全过程;当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;通过zipkin的界面形式展示本次请求的调用链监控数据。进一步的,所述通过zipkin的界面形式展示本次请求的调用链监控数据,包括:以树结构的形式呈现本次请求的调用链中各环节的层级关系。进一步的,所述调用上下文对象包括:调用链ID、调用上下文对象ID、调用方法、服务名称、调用时间、调用地址、耗时、是否异常和错误代码。进一步的,所述日志信息包括当前环节执行的全部sql语句。进一步的,所述当前环节的调用上下文对象包括:客户端的调用上下文对象和服务端的调用上下文对象。进一步的,所述当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID,包括:获取上一环节的调用上下文对象ID,以及获取当前环节的调用上下文对象的数量;依据上一环节的调用上下文对象ID对当前环节的调用上下文对象进行编号,生成当前环节的调用上下文对象ID。进一步的,所述依据上一环节的调用上下文对象ID对当前环节的调用上下文对象进行编号,生成当前环节的调用上下文对象ID,包括:在上一环节的调用上下文对象ID上增加新的层级编号,并赋予当前环节的调用上下文对象。第二方面,本专利技术实施例提供一种分布式调用链跟踪装置,其中,包括:调用链跟踪单元,用于当用户发送请求时,通过拦截器进行埋点,得到全局唯一的调用链ID,并控制所述调用链ID伴随所述请求的调用链全过程;信息记录单元,用于当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;信息更新单元,用于当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;监控数据推送单元,用于将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;监控数据存储单元,用于再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;监控数据展示单元,用于通过zipkin的界面形式展示本次请求的调用链监控数据。第三方面,本专利技术实施例提供一种计算机设备,其中,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的分布式调用链跟踪方法。第四方面,本专利技术实施例提供一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述分布式调用链跟踪方法。本专利技术实施例提供了一种分布式调用链跟踪方法、装置、计算机设备及存储介质,其中,方法包括:当用户发送请求时,通过拦截器进行埋点,得到全局唯一的调用链ID,并控制所述调用链ID伴随所述请求的调用链全过程;当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;通过zipkin的界面形式展示本次请求的调用链监控数据。该方法可根据调用链ID追踪每个请求的完整调用链路,收集调用链路上每个服务的性能数据,从而提高故障定位速度。附图说明为了更清楚地说明本专利技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的分布式调用链跟踪方法的流程示意图;图2为本专利技术实施例提供的分布式调用链跟踪装置的示意性框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、本文档来自技高网
...

【技术保护点】
1.一种分布式调用链跟踪方法,其特征在于,包括:/n当用户发送请求时,通过拦截器进行埋点,得到全局唯一的调用链ID,并控制所述调用链ID伴随所述请求的调用链全过程;/n当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;/n当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;/n将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;/n再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;/n通过zipkin的界面形式展示本次请求的调用链监控数据。/n

【技术特征摘要】
1.一种分布式调用链跟踪方法,其特征在于,包括:
当用户发送请求时,通过拦截器进行埋点,得到全局唯一的调用链ID,并控制所述调用链ID伴随所述请求的调用链全过程;
当请求到达微服务的代理网关时,记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;
当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID;
将本次请求所得到的调用链监控数据通过kafka的生产者服务推送到的相应的分区;
再通过kafka的消费者服务将调用链监控数据转存储到elasticsearch;
通过zipkin的界面形式展示本次请求的调用链监控数据。


2.根据权利要求1所述的分布式调用链跟踪方法,其特征在于,所述通过zipkin的界面形式展示本次请求的调用链监控数据,包括:
以树结构的形式呈现本次请求的调用链中各环节的层级关系。


3.根据权利要求1所述的分布式调用链跟踪方法,其特征在于,所述调用上下文对象包括:调用链ID、调用上下文对象ID、调用方法、服务名称、调用时间、调用地址、耗时、是否异常和错误代码。


4.根据权利要求1所述的分布式调用链跟踪方法,其特征在于,所述日志信息包括当前环节执行的全部sql语句。


5.根据权利要求1所述的分布式调用链跟踪方法,其特征在于,所述当前环节的调用上下文对象包括:客户端的调用上下文对象和服务端的调用上下文对象。


6.根据权利要求1所述的分布式调用链跟踪方法,其特征在于,所述当一微服务调用其他微服务时,调用dubbo服务,将调用上下文对象ID自动更新,并记录当前环节的日志信息、调用上下文对象以及调用上下文对象ID,包括:
获取上一环节的调用上下文对象ID,...

【专利技术属性】
技术研发人员:朱丽平章新日王昭日
申请(专利权)人:深圳前海环融联易信息科技服务有限公司
类型:发明
国别省市:广东;44

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

1