README

zipkin

下载,启动
curl -sSL https://zipkin.io/quickstart.sh | bash -s
java -jar zipkin.jar

访问地址

http://localhost:9411

介绍

zipkin是一个分布式的追踪系统,按照Google Dapper进行设计,是Google Dapper的一个实现。

使用场景

分布式系统中,微服务众多,客户端调用某一个接口,响应时间过长或报错,排查问题非常不方便。

因为在微服务架构下,一个客户端的接口,调用链可能很长,并且很复杂,比如

  • 同步调用 接口A

    调用S1->收到结果,再调用S2->收到结果,再调用S3。 或者

  • 并发调用 接口A

    • 并发:调用S1,等待S1有结果,调用S3。

    • 并发:调用S2。

    • 等待2个结果,汇总结果,返回数据。

如果接口响应时间过慢或者报错,排查问题很麻烦。

为了排查问题,至少需要2个关键点:

  1. 搞清楚A接口到底调用哪些微服务。
  2. 找到对应的微服务,查看微服务的状态,比如响应时间,是否overload或者fail等。

如果没有这两个东西,不能按图索骥,那么只能查看A接口的代码实现,找到A调用了S1,S2,S3。

但是问题,真的解决了吗?

如果发现S1又调用了S11,S111,S111....

S2调用S22,S222,S222.....

S3调用了SNNNNN.....

你会发现,你根本查不下去了!

zipkin使用

zipkin可以记录调用A接口的所有步骤(有代码侵入,且对A接口调用的依赖接口都要记录。)。

zipkin记录时间数据。

zipkin不仅能记录远程接口的调用,可以记录任何事件发生的时间,比如读取某资源的时间,图片,文件等。 建立数据库连接的时间,数据库query返回时间等等。

zipkin提供了web ui,可以进行条件查询。

Expand ▾ Collapse ▴

Directories

Path Synopsis
kit
api
svr
std
cli