目录
要做的目标
思路
实现
A.依赖
B.代码编写
C:使用功能方增加依赖上上一步封装的jar包
模拟测试
为了简化后续做类似功能的童鞋操作,故整理一篇针对traceId和自定义属性全链路传递的处理操作,整体调试流程还是耽误了不少时间的。
要做的目标
实现全链路traceId传递,自定义全链路traceUrl标记(traceUrl的规则是比如:比如A-》B-》 C 这样得到的就是 traceUrl=/A/B/C)
思路
1.依赖sleuth传递各种信息 ,使用方式遵循它的规则
2.feign调用处增加处理标记逻辑
3.web服务入口处增加拦截处理标记逻辑
4.异步线程池处理逻辑(sleuth自带功能)
实现
1.项目封装一个基础的jar包,比如trace-jar
A.依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><!-- Import dependency management from Spring Boot --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
B.代码编写
//AOP处理feign逻辑前
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspect