Fork me on GitHub

Zipkin架构简介

Zipkin基本概念
  1. Span:基本工作单元,一次链路调用就会创建一个Span
  2. Trace:一组Span的集合,表示一条调用链路。举个例子:当前存在服务A调用服务B然后调用服务C,这个A->B->C的链路就是一条Trace,而每个服务例如B就是一个Span,如果在服务B中另起2个线程分别调用了D、E,那么D、E就是B的子Span
Zipkin架构

先看一下架构图

file

其中左边部分代表了客户端分别为:

  1. InstrumentedClient:使用了Zipkin客户端工具的服务调用方
  2. InstrumentedServer:使用了Zipkin客户端工具的服务提供方
  3. Non-InstrumentedServer:未使用Trace工具的服务提供方,当然还可能存在未使用工具的调用方
  4. 总结:一个调用链路是贯穿InstrumentedClient->InstrumentedServer的,每经过一个服务都会以Span的形式通过Transport把经过自身的请求上报的Zipkin服务端中

右边线框内代表了Zipkin的服务端,其中各组件的功能如下:

  1. UI:提供web页面,用来展示Zipkin中的调用链和系统依赖关系等
  2. Collector:对各个客户端暴露,负责接受调用数据,支持HTTP、MQ等
  3. Storage:负责与各个存储适配后存储数据,支持内存,MySQL,ES等
  4. API:为web界面提供查询存储中的数据的接口

原文地址

posted @ 2019-11-15 10:26  石玉军  阅读(225)  评论(0编辑  收藏  举报