spring cloud基础知识点

常见分布式链路追踪(Tacing)产品简介

2019-10-19  本文已影响0人  齐晋

常见开源产品及演进过程

image.png

CAL

eBay早在2002年的时候,就开发了一套叫做CAL(Centralized Application Logging)的链路追踪系统,在eBay内部堪称架构神器。不过没有开源。

Dapper

Google在与eBay差不多的时间,也开发了一套链路追踪系统,叫Dapper,在Google内部运行了很长时间,一直没有开源。不过在2010年的时候,Google发布了一篇划时代的论文,来介绍Dapper的原理。Dapper论文成了后面众多链路追踪系统的理论基础。

下面是Dapper论文的英文原版和中文翻译版:
Dapper 英文版
Dapper 中文翻译版

CAT

在eBay工作了十多年的吴其敏加入大众点评成为首席架构师。吴其敏以eBay的CAL为模板,在2011年底,开始研发名为CAT(Central Application Tracking)的链路追踪系统。CAT在2014年开始开源,已经被众多知名公司使用。

下面是美团官方技术博客对CAT的介绍:
美团官方技术博客 - 深度剖析开源分布式监控CAT

下面是CAT Github地址:
CAT - Github

下面是CAT UI示例:


image.png

Zipkin

Twitter在2012年开源了Zipkin。不过Zipkin最早是用scala实现的,比较小众。后来由社区用java重写为OpenZipkin,才开始流行起来。Zipkin可以认为是Dapper论文的工程实践。

下面是Zipkin的官网和Github地址:
Zipkin官网
Zipkin - Github

下面是Zipkin Tracing UI示例:


image.png

Pinpoint

Pinpoint是一家名叫Naver的韩国公司的产品。Naver是韩国当前最大的互联网服务公司。Pinpoint的创新点在于使用了字节码注入技术,埋点是无侵入的。

下面是Pinpoint在Github的地址:
Pinpoint - Github

下面是Pinpoint Tracing UI示例:


image.png

Skywalking

2015年,前OneAPM成员吴晟借鉴Pinpoint的思想,开发并开源了Skywalking,并在2017年时进入Apache孵化器。在Apache背书的情况下,Skywalking近几年在国内发展迅速。

同Pinpoint一样,Skywalking也使用了字节码注入技术,埋点也是无侵入的。

下面是Skywalking Github地址:
Github - Skywalking

下面是Skywalking一个体验版服务:
Skywalking - Demo

下面是Skywalking Tracing UI示例:


image.png

Jaeger

2016年,Uber受Dapper和OpenZipkin启发,用Go语言开发了链路追踪系统Jaeger。可以认为Jaeger是Zipkin的golang版。

下面是Jaeger官网和Github地址:
Jaeger官网
Github - Jaeger

下面是Jaeger Tracing UI示例:


image.png

小结

CAT可以说是与CAL同根同源。而Zipkin、Pinpoint、Skywalking、Jaeger均是参考Dapper论文发展而来,因此,上述产品可大致按下图划分:


image.png

另外,链路追踪和APM可以说是密不可分,也越来越多的开源产品不仅局限于提供Tacing的功能。上述开源产品中,有很多产品本质上是个APM,Tracing只是其众多功能中的一部分:


image.png

后续会对比上述几个开源产品的异同,做为在技术选型时作为参考。

参考

上一篇下一篇

猜你喜欢

热点阅读