Spring Cloud Sleuth和Zipkin笔记

Tracing是什么

Tracing系统就是能记录追踪一个完整的调用链的系统,概念和规范有一个opentracing比较出名,定义了什么是Trace,以及Span的概念,以及调用链上不同Span之间的关系的概念。

当我们需要引入分布式跟踪系统支持的时候,Spring Cloud生态里一般开源的默认选型都是Sleuth + Zipkin

Sleuth 和 Zipkin是什么

Spring Cloud Sleuth是SpringCloud提供的分布式跟踪的解决方案,实际上就是他只是选择了一个合适的开源类库集成进来,也就是默认是Zipkin,它本身并不是分布式跟踪的完整实现,说白了他只是一个集成 "SpringCloud" 和 "Tracing implemention"一个中间人

Zipkin是分布式跟踪系统的一个实现,有客户端brave类库,也有服务端收集&存储,Tracing类系统实现有很多比如drapper、pinpoint、skywalking、jaeger以及各种apm

其他

分布式跟踪大概的思路就是:客户端段代码埋点上报,服务端收集存储以及提供专门的后台UI展示查询,很多分布式跟踪的实现都会参考opentracing,有了规范就可以统一概念和设计思想,也提供了各个语言对应的规范实现的client类库,有了这套统一的opentracing api,就等于有了一个trace facade一样,更换新的tracing实现对客户端代码影响较小,但是实际上由于Tracing这玩意特殊了些,基本都是侵入性相对较低的,对开发是透明的,基本很少有手动埋点的需求,不过有手动编写客户端Tracing代码的时候,这个facade的意义就比较重要了

YY那么多,还是建议看下sleuth、zipkin相关源码,更好地理解目前主流开源的框架如何设计,如何集成以及各个配置项的含义

你可能感兴趣的:(Spring Cloud Sleuth和Zipkin笔记)