这篇博客主要想帮大家避个坑!!!!!!!!!!!!!
本次的需求是想通过zipkin实现链路追踪,但是网上很多的博客千篇一律,主要是都不太对!误导性太强。。。。。。
其实通过zipkin实现链路追踪很简单。
一.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
二.修改yml文件
spring.application.name=service1
spring.zipkin.base-url=http://10.160.57.18:9411/
如果希望日志中能打出来traceId和spanId链路信息,需要日志key中有traceId和spanId字段信息。因为Zipkin starter已经提供在使用logback或log4j等框架时可将traceId和spanId等信息打印到运行日志。
三.slf4j-日志框架-logback.xml
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%contextName][%thread][%X{flowId}][%X{traceId}][%X{spanId}][%X{expend}] %logger{60}.%M:%line - %msg%n</pattern>
四.大家一起来康康我们的效果ex:serviceone、servicetwo
[2021-09-02 14:29:57.803] INFO [suntime,tripartite-sys,gateway,gateway][http-nio-8808-exec-1][][1642d287164edc22][1642d287164edc22][] org.example.org.example.controller.Enter.oneService2:55 - service1
[2021-09-02 14:29:58.016] INFO [suntime,tripartite-sys,gateway,gateway][http-nio-8809-exec-1][][1642d287164edc22][d6c4b9ffad643c47][] org.example.org.example.controller.Enter.oneService:27 - servicetwo