链路追踪基本概念
指将一次分布式请求还原成调用链路,并进行集中展示,以便确认各个服务节点的耗时,请求具体到达了哪台机器,每个服务节点的请求状态等等。
- Trace:从头到尾贯穿整个调用链的ID,可以代表调用链。
- Span:比如服务A发起对服务B的调用,这个事件可以看作是一个独立的单元,就是一个Span。Span里包含了ID、时间戳等信息。
- Annotation:表示一个特殊事件,一个Span可以包含多个Annotation。
RPC与gRPC
- RPC (Remote Procedure Call,远程过程调用追踪) :一个完整的远程调用方案。它包含了:接口规范、传输协议、数据序列化反序列化规范。现在有两台服务器A和B。部署在A服务器上的应用,想调用部署在B服务器上的另一个应用提供的方法,由于不在一个内存空间,不能直接调用,需要通过网络来达到调用的效果。而这一调用过程,对于开发人员来说是透明的。
- gRPC :由 google开发的一个高性能、通用的开源RPC框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言。
调用链分析工具
工具名称 | 说明 | 特点 |
---|---|---|
Zipkin | Twitter开源的调用链分析工具,目前基于springcloud sleuth得到了广泛的使用。 | 轻量,使用部署简单。 |
Pinpoint | 韩国人开源的基于字节码注入的调用链分析,以及应用监控分析工具。 | 支持多种插件,UI功能强大,接入端无代码侵入。 |
SkyWalking | 本土开源的基于字节码注入的调用链分析,以及应用监控分析工具。目前已加入Apache孵化器。 | 支持多种插件,UI功能较强,接入端无代码侵入。 |
CAT(Central Application Tracking) | 大众点评开源的基于编码和配置的调用链分析,应用监控分析,日志采集,监控报警等一系列的监控平台工具。 | / |
jaeger | 受到Dapper和OpenZipkin的启发,是由Uber Technologies创建 并捐赠给Cloud Native Computing Foundation的分布式追踪平台。 | / |