【技术实现步骤摘要】
分布式链路跟踪TraceID写入数据库的方法及系统
[0001]本专利技术涉及微服务架构
,具体涉及一种分布式链路跟踪TraceID写入数据库的方法及系统。
技术介绍
[0002]在微服务架构中,一次请求往往需要由多个模块、中间件等相互调用才能完成,其中的调用过程可能是串行的,可能是并行的。分布式链路跟踪就是将一次请求经过的模块、调用关系、调用先后顺序还原成一个拓扑图。一次请求会产生一个全局唯一的不可改变的TraceID,该TraceID在各个模块之间流转。数据库是微服务架构中经常使用的一个组件,记录业务数据。INSERT是数据库的DML语句,向数据库中插入数据。
[0003]传统TraceID写入数据库的方法是在业务代码的SQL语句里明确写上插入的字段“trace_id”及值,业务系统工程代码里需要额外的读取和设置trace_id的代码逻辑,不仅业务字段和非业务字段的耦合性强;系统中的每个SQL语句都需要写字段,涉及多个数据表需要存放分布式链路跟踪TraceID,会大大增加维护成本。
技术实现思路
r/>[0004]本本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.分布式链路跟踪TraceID写入数据库的方法,其特征在于,包括步骤:步骤一:在业务系统工程代码中新建配置文件,并在配置文件中填写配置项;步骤二:拦截业务系统运行时待执行的SQL语句,获取分布式链路跟踪上下文的TraceID;步骤三:判断SQL语句是否在配置项的配置范围内,基于TraceID对配置范围内的SQL语句进行字段扩展改写;步骤四:业务系统以字段扩展改写后的SQL语句继续运行。2.根据权利要求1所述的分布式链路跟踪TraceID写入数据库的方法,其特征在于,所述配置项包括:配置名称和该配置名称下的定义数据表。3.根据权利要求2所述的分布式链路跟踪TraceID写入数据库的方法,其特征在于,步骤二包括:定义一个拦截器C用于拦截业务系统运行时待执行的SQL语句;拦截器C还读取配置文件中的配置项,并基于配置名称下的定义数据表生成映射关系。4.根据权利要求3所述的分布式链路跟踪TraceID写入数据库的方法,其特征在于,步骤三包括以下子步骤:步骤3.1:基于拦截器C生成的映射关系判断SQL语句是否在配置项的配置范围内;步骤3.2:对在配置范围内的SQL语句进行字段扩展改写。5.根据权利要求4所述的分布式链路跟踪TraceID写入数据库的方法,其特征在于,步骤3.1包括:判断SQL语句中第一个关键字是否为“INSERT”,同时SQL语句中待插入的数据表是否在拦截器C生成的映射关系中,若是则该SQL语句在配置项的配置范围内。6.根据权利要求5所述的分布式链路跟踪TraceID写入数据库的方法,其特征在于,步骤3.2包括:在SQL语句的最后一个列名之后扩展新的列名“trace_id”,在VALUES列表的最后扩展新的值“TraceID”。7.分布式链路跟...
【专利技术属性】
技术研发人员:白铖,谢延泽,李佳明,蒋恩平,
申请(专利权)人:四川新网银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。