目录
一、什么是链路追踪?
二、核心思想Dapper
(一)Dapper链路追踪基本概念概要
(二)Trace、Span、Annotations
Trace
Span
Annotation
案例说明
(三)带内数据与带外数据
带外数据
带内数据
数据的传递与集中
(四)采样
采样的目的
采样率的调整
采样机制的实现
(五)存储
为什么选择 BigTable
存储结构
查询和分析
三、Twitter的Zipkin
(一)架构概述
(二)Zipkin v2 版本的数据模型
Span 消息类型
Endpoint 消息类型
Annotation 消息类型
(三)Zipkin带内数据和带外数据
带内数据(b3-propagation)
带外数据
(四)Zipkin 采样
采样状态
采样决策
实现和应用
(五)数据埋点及上报过程
四、总结
干货分享,感谢您的阅读!
在当今的互联网时代,网络应用已经成为我们生活中不可或缺的一部分。从在线购物到社交媒体,再到银行交易和医疗服务,这些应用无不依赖于庞大而复杂的分布式系统。然而,当我们遇到网页加载缓慢或功能异常时,我们可能会感到沮丧,却很少去思考背后究竟发生了什么。
通过分布式链路追踪,我们不仅可以了解各个服务之间的调用关系,还可以获取每个请求在各个服务中的详细时间信息。接下来,我们将聊聊分布式链路追踪,揭开这项技术的神秘面纱,探索它如何在复杂的分布式系统中发挥至关重要的作用,确保我们的网络应用始终高效、可靠地为用户服务。
一、什么是链路追踪?
随着分布式系统变得日益复杂,越来越多的组件开始走向分布式化,例如微服务、分布式数据库和分布式缓存等,使得后台服务构成了一个庞大而复杂的网络。在提高服务能力的同时,这种复杂的网络结构也让问题定位变得更加困难。当一个请求在多个服务之间穿梭时,任何一个服务的调用失败都会引发问题。此时,查找具体的异常来源变得十分抓狂,问题定位和处理的效率也会非常低。
分布式链路追踪正是为了解决这个问题而生。它就像一位侦探,能够将一次分布式请求的全过程还原成一条详细的调用链路。通过分布式链路追踪,我们可以集中展示一次请求在各个服务节点上的详细情况,比如每个节点的响应时间、请求具体到达的机器,以及每个节点的请求状态等信息。
想象一下,分布式链路追踪就像是在复杂的公路系统中安装了GPS。每辆车的行驶路径、停靠站点和行驶时间都