什么是链路追踪
分布式链路追踪(Distributed Tracing),也叫 分布式链路跟踪,分布式跟踪,分布式追踪 等等。
本文使用分布式Trace来简称分布式链路追踪。
trace就犹如一张大的json表,同一层级的数据代表同一层级的应用,越往下代表是对下层某个应用的依赖。从图中可以很方便的看到每一个应用调用的名称,调用花费的时间,以及是否成功。
下面这张图是我们使用微软的application insights生成的tracing图

链路追踪技术选型
| zipkin | jaeger | skywalking | |
|---|---|---|---|
| OpenTracing兼容 | 是 | 是 | 是 |
| 客户端支持语言 | java,c#,go,php,python等 | java,c#,go,php,python等 | Java, .NET Core, NodeJS ,PHP,python |
| 存储 | ES,mysql,Cassandra,内存 | ES,kafka,Cassandra,内存 | ES,H2,mysql,TIDB,sharding sphere |
| 传输协议支持 | http,MQ | udp/http | gRPC |
| ui丰富程度 | 低 | 中 | 中 |
| 实现方式-代码侵入性 | 拦截请求,侵入 | 拦截请求,侵入 | 字节码注入,无侵入 |
| 扩展性 | 高 | 高 | 中 |
| trace查询 | 支持 | 支持 | 支持 |
| 性能损失 | 中 | 中 | 低 |
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227237.html原文链接:https://javaforall.net
