微服务架构学习-进阶篇--12,分布式服务跟踪Sleuth

第一节,为什么要使用微服务跟踪?它解决了什么问题?

在这里插入图片描述

第二节,编写sleuth的入门例子及跟踪日志原理剖析

(1)在e-book模块下新建子模块sleuth。
(2)在sleuth模块下新建maven项目,命名为sleuth-consumer,拷贝e-book-consumer-order项目的文件及代码到该新项目。
(3)修改pom文件,添加sleuth的依赖:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>

(4)在sleuth模块下新建子模块sleuth-product。
(5)在sleuth-product模块下新建maven项目,命名为sleuth-product-api。
(6)拷贝e-book-product-api的各个文件及代码到该新项目。
(7)在sleuth-product模块下新建maven项目,命名为sleuth-product-core。
(8)拷贝e-book-product-core的各个文件及代码到该新项目。
(9)修改pom文件,去掉无用依赖,加入sleuth的依赖,同上。
(10)将logback.xml文件中的日志级别改为DEBUG。
(11)然后启动sleuth-consumer,e-book-product-core。
(12)浏览器访问http://localhost:8113/productList,后台日志打印如下:
provider打印如下:
在这里插入图片描述
consumer打印如下:
在这里插入图片描述
此时的日志已经记录服务的请求过程了,我们来分析一下:
由consumer的下边的红框可以看到有五个参数:
1,X-B3-TraceId:一条请求链路(Trace)的唯一标识,必须值

2,X-B3-SpanId:一个工作单元(Span)的唯一标识,必须值

3,X-B3-ParentSpanId::标识当前工作单元所属的上一个工作单元,Root Span(请求链路的第一个工作单元)的该值为空

4,X-B3-Sampled:是否被抽样输出的标志,1表示需要被输出,0表示不需要被输出

5,X-Span-Name:工作单元的名称

在这里插入图片描述
(13)源码点这里

猜你喜欢

转载自blog.csdn.net/tanwenfang/article/details/88633081