当前位置: 代码迷 >> 综合 >> spring-cloud-sleuth 3.x的版本传递traceId和自定义属性
  详细解决方案

spring-cloud-sleuth 3.x的版本传递traceId和自定义属性

热度:97   发布时间:2024-01-03 13:42:48.0

目录

要做的目标

思路

实现

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
  相关解决方案