Skip to content

Sleuth和zipkin的介绍

Sleuth官方文档:http://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#sleuth-adding-project

zipkin官方文档:https://zipkin.io/

相关文档:https://github.com/openzipkin/zipkinhttps://zipkin.io/pages/quickstart.html

一、什么是分布式链路追踪

分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。

核心:将一次请求分布式调用,使用GPS定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来

二、链路追踪组件Sleuth

专门用于记录链路数据的开源组件,组件的值如下:[order-service,96f95a0dd81fe3ab,852ef4cfcdecabf3,false]

  1. 第一个值,spring.application.name的值

  2. 第二个值,96f95a0dd81fe3ab ,sleuth生成的一个ID,叫Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID

  3. 第三个值,852ef4cfcdecabf3、spanid 基本的工作单元,获取元数据,如发送一个http

  4. 第四个值:false,是否要将该信息输出到zipkin服务中来收集和展示。

记录链路追踪需要用logger记录打印日志才会被记录。比如,在某个接口的代码打印如下日志:

logger.info("getProductById success");

日志记录如下:

INFO [product-service,c59aece4fab99dfc,b9765ae2a753b859,false] 13564 --- [nio-8082-exec-2] c.l.e.client.service.ProductService      : getProductById success

三、zipkin组件

zipkin是一个APM工具。目前的工具有很多,参考https://www.zhihu.com/question/27994350

zipkin组成:Collector、Storage、Restful API、Web UI组成