背景简介
什么是定时任务
定时任务是业务应用系统中存在定时周期性运行的业务逻辑。由于其运行于后端进程中往往存在执行状态和执行链路的不可见性《常见定时任务技术方案》。
什么是链路追踪
随着分布式微服务化架构在企业中大规模运用,业务运行的应用平台是一个由各个业务研发团队不同业务应用组合而成的庞杂系统工程,相互之间存在各种形式的访问交互。'
面对上述如此复杂的系统结构,对于业务入口端应用而言所有的下游服务状态都是黑盒不可知的存在。相应的运维问题也随之而来:
- 入口服务不可用时,如何快速定位具体是哪个服务节点不可用及原因?
- 如何快速定位分析业务链路中性能瓶颈点?
- 如何掌控业务链路完整执行过程?
面对上述问题,从Google分布式链路追踪系统的Dapper论文开启了各类分布式链路追踪的实现,出现了很多相关系统,如:Zipkin、Skywalking、Pinpoint。所有这些其核心逻辑就是在一次业务请求开始时构建相应请求的链路上下文信息,并在服务调用过程中透传完善相应的链路节点信息,最终通过该请求TraceId(本次请求的链路标识)和每个节点父子依赖关系构建出一个完整的调用链数据结构。
整个分布式全链路追踪平台各项主要分工:
- 应用侧完成服务调用埋点,常见方式:手动调用SDK埋点、java agent模式自动埋点
- 服务之间通信交互,相应通信协议上需要添加Trace信息进行传递,保证在整个调用链中Trace信息共享
- Trace信息上报至全链路追踪平台进行存储展现
基