分布式调用链追踪zipkin
- zipkin是Twitter的一个开源项目,基于论文Google Dapper(https://ai.google/research/pubs/pub36356)实现,可以用来收集各个服务器上请求链路的跟踪数据,可以通过API接口来查询数据来实现对服务系统的监控,此外zipkin还提供了UI方便直观查询跟踪信息和服务间依赖关系。
一、zipkin架构
1、zipkin的基础架构一共包括4个核心组件
- collector:收集器组件,主要用于收集每个服务发送过来的信息,并将这些信息转换为zipkin内部处理的span格式,方便存储、分析、展示。
- storage:存储组件,支持内存(主要测试用)和数据库存储(mysql、elasticsearch等)
- restful API:API组件,提供了外部访问接口,方便自定义功能开发,如监控等
- Web UI:UI组件,基于API实现,方便查看跟踪信息
2、关于zipkin的几个核心概念
- Span:一个client服务从发出请求到被响应的过程称为span
- Trace:client发出请求到完成处理,中间会经历一个调用链,这个过程称为一个调用链追踪
- Transport:采集信息的传方式,最简单的http方式,高并发可以换成消息队列方式,如kafka
更多细节参考官网:https://zipkin.io/