From 2a5f7eb5bd0fe441da2140c825d11f38b298a728 Mon Sep 17 00:00:00 2001 From: xudawei Date: Mon, 22 Apr 2024 16:46:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9Ecommon-trace=E6=A8=A1?= =?UTF-8?q?=E5=9D=97:traceId=E8=AE=BE=E7=BD=AE=E5=88=B0feign=E8=B0=83?= =?UTF-8?q?=E7=94=A8head=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo-common-trace/pom.xml | 37 +++++++++++++++++++ .../trace/interceptor/FeignInterceptor.java | 23 ++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 axzo-common-loggings/axzo-common-trace/pom.xml create mode 100644 axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java diff --git a/axzo-common-loggings/axzo-common-trace/pom.xml b/axzo-common-loggings/axzo-common-trace/pom.xml new file mode 100644 index 0000000..89078b8 --- /dev/null +++ b/axzo-common-loggings/axzo-common-trace/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + axzo-common-loggings + cn.axzo.framework.logging + 1.0.0-SNAPSHOT + + com.axzo.framework + axzo-common-trace + Axzo Common trace + + + + org.springframework.boot + spring-boot-starter-logging + + + + org.springframework.boot + spring-boot-starter-web + + + + cn.hutool + hutool-core + + + + io.github.openfeign + feign-httpclient + + + + + diff --git a/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java b/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java new file mode 100644 index 0000000..14a54fb --- /dev/null +++ b/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java @@ -0,0 +1,23 @@ +package com.axzo.framework.trace.interceptor; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.slf4j.MDC; +import org.springframework.context.annotation.Configuration; + +/** + * 调用前从 MDC中获取上一步骤设置的traceId,放置到 header中,供下一个服务从header中获取traceId + */ +@Configuration +public class FeignInterceptor implements RequestInterceptor { + private static final String TRACE_ID = "traceId"; + + public static final String CTX_LOG_ID_MDC = "ctxLogId"; + + @Override + public void apply(RequestTemplate requestTemplate) { + requestTemplate.header(TRACE_ID, MDC.get(TRACE_ID)); + requestTemplate.header(CTX_LOG_ID_MDC, MDC.get(CTX_LOG_ID_MDC)); + } +} +