由于校内课题组分配任务的需要,学习一下微服务架构、调用链数据等知识。

为什么需要分布式追踪系统?

为了应对各种复杂的业务,开发工程师开始采用敏捷开发、持续集成等开发方式。系统架构也从单机大型软件演化成微服务架构。微服务构建在不同的软件集上,这些软件模块可能是由不同团队开发的,可能使用不同的编程语言来实现,还可能发布在多台服务器上。因此,如果一个服务出现问题,可能导致几十个应用都出现服务异常。

分布式追踪系统可以记录请求范围内的信息,例如一次远程方法调用的执行过程和耗时,是我们排查系统问题和系统性能的重要工具

什么是调用链(Trace)?

在广义上,一个调用链代表一个事务或者流程在(分布式)系统中的执行过程。在OpenTracing标准中,调用链是多个Span组成的一个有向无环图(Directed Acyclic Graph,简称DAG),每一个Span代表调用链中被命名并计时的连续性执行片段。

下图是一个分布式调用的例子:客户端发起请求,请求首先到达负载均衡器,接着经过认证服务、计费服务,然后请求资源,最后返回结果。

分布式调用实例 时间轴链路图

OpenTracing数据模型