Sleuth和zipkin的介绍
zipkin官方文档:https://zipkin.io/
相关文档:https://github.com/openzipkin/zipkinhttps://zipkin.io/pages/quickstart.html
一、什么是分布式链路追踪
分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。
核心:将一次请求分布式调用,使用GPS定位串起来,记录每个调用的耗时、性能等日志,并通过可视化工具展示出来
二、链路追踪组件Sleuth
专门用于记录链路数据的开源组件,组件的值如下:[order-service,96f95a0dd81fe3ab,852ef4cfcdecabf3,false]
第一个值,spring.application.name的值
第二个值,96f95a0dd81fe3ab ,sleuth生成的一个ID,叫Trace ID,用来标识一条请求链路,一条请求链路中包含一个Trace ID,多个Span ID
第三个值,852ef4cfcdecabf3、spanid 基本的工作单元,获取元数据,如发送一个http
第四个值: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组成
