一、分布式链路追踪技术适⽤场景(问题场景)
1. 场景描述
在微服务架构下,⼀次请求少则经过三四次服务调⽤完成,多则跨越⼏⼗个甚⾄是上百个服
务节点。那么问题接踵⽽来:
如何动态展示服务的调⽤链路?(⽐如A服务调⽤了哪些其他的服务---依赖关系)
如何分析服务调⽤链路中的瓶颈节点并对其进⾏调优?(⽐如A—>B—>C,C服务处理时间特别⻓)
如何快速进⾏服务链路的故障发现?
2. 分布式链路追踪技术
分布式环境下基于这种想法实现的监控技术就是就是分布式链路追踪(全链路追踪)
3. 市场上的分布式链路追踪⽅案
Spring Cloud Sleuth + Twitter Zipkin(社区最活跃、文档最丰富)
阿⾥巴巴的“鹰眼”
⼤众点评的“CAT”
美团的“Mtrace”
京东的“Hydra”
新浪的“Watchman”
Apache Skywalking(最近被提到很多)
二、分布式链路追踪技术核⼼思想
本质:记录⽇志,作为⼀个完整的技术,分布式链路追踪也有⾃⼰的理论和概念
微服务架构中,针对请求处理的调⽤链可以展现为⼀棵树,示意如下:
上图标识⼀个请求链路,⼀条链路通过TraceId唯⼀标识,span标识发起