feat(common): 新脚手架,兼容一下 ctxLogId 这个traceId
This commit is contained in:
parent
dcd4bd7412
commit
18e2230439
@ -2,6 +2,7 @@ package cn.axzo.foundation.util;
|
|||||||
|
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
import lombok.experimental.UtilityClass;
|
import lombok.experimental.UtilityClass;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.MDC;
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
@UtilityClass
|
@UtilityClass
|
||||||
@ -12,27 +13,35 @@ public class TraceUtils {
|
|||||||
*/
|
*/
|
||||||
public static final String TRACE_ID_IN_MDC = "TraceId";
|
public static final String TRACE_ID_IN_MDC = "TraceId";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 老服务用的是 ctxLogId,这里兼容一下老服务
|
||||||
|
*/
|
||||||
|
public static final String TRACE_ID_CTX_LOG_ID = "ctxLogId";
|
||||||
|
|
||||||
public String getOrCreateTraceId() {
|
public String getOrCreateTraceId() {
|
||||||
String res = MDC.get(TRACE_ID);
|
String res = getTraceId();
|
||||||
if (Strings.isNullOrEmpty(res)) {
|
if (Strings.isNullOrEmpty(res)) {
|
||||||
res = UUIDBuilder.generateShortUuid();
|
res = UUIDBuilder.generateShortUuid();
|
||||||
MDC.put(TRACE_ID, res);
|
MDC.put(TRACE_ID, res);
|
||||||
MDC.put(TRACE_ID_IN_MDC, res);
|
MDC.put(TRACE_ID_IN_MDC, res);
|
||||||
|
MDC.put(TRACE_ID_CTX_LOG_ID, res);
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTraceId() {
|
public String getTraceId() {
|
||||||
return MDC.get(TRACE_ID);
|
return StringUtils.firstNonBlank(MDC.get(TRACE_ID_CTX_LOG_ID), MDC.get(TRACE_ID));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void putTraceId(String traceId) {
|
public void putTraceId(String traceId) {
|
||||||
MDC.put(TRACE_ID, traceId);
|
MDC.put(TRACE_ID, traceId);
|
||||||
MDC.put(TRACE_ID_IN_MDC, traceId);
|
MDC.put(TRACE_ID_IN_MDC, traceId);
|
||||||
|
MDC.put(TRACE_ID_CTX_LOG_ID, traceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeTraceId() {
|
public void removeTraceId() {
|
||||||
MDC.remove(TRACE_ID);
|
MDC.remove(TRACE_ID);
|
||||||
MDC.remove(TRACE_ID_IN_MDC);
|
MDC.remove(TRACE_ID_IN_MDC);
|
||||||
|
MDC.remove(TRACE_ID_CTX_LOG_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package cn.axzo.foundation.web.support.interceptors;
|
|||||||
|
|
||||||
import cn.axzo.foundation.util.TraceUtils;
|
import cn.axzo.foundation.util.TraceUtils;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -14,7 +15,7 @@ public class TraceInterceptor implements HandlerInterceptor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
String upstreamTraceId = request.getHeader(TraceUtils.TRACE_ID);
|
String upstreamTraceId = StringUtils.firstNonBlank(request.getHeader(TraceUtils.TRACE_ID_CTX_LOG_ID), request.getHeader(TraceUtils.TRACE_ID));
|
||||||
if (!Strings.isNullOrEmpty(upstreamTraceId)) {
|
if (!Strings.isNullOrEmpty(upstreamTraceId)) {
|
||||||
// 优先使用上游的 traceId
|
// 优先使用上游的 traceId
|
||||||
TraceUtils.putTraceId(upstreamTraceId);
|
TraceUtils.putTraceId(upstreamTraceId);
|
||||||
@ -22,6 +23,7 @@ public class TraceInterceptor implements HandlerInterceptor {
|
|||||||
|
|
||||||
String traceId = TraceUtils.getOrCreateTraceId();
|
String traceId = TraceUtils.getOrCreateTraceId();
|
||||||
request.setAttribute(TraceUtils.TRACE_ID_IN_MDC, traceId);
|
request.setAttribute(TraceUtils.TRACE_ID_IN_MDC, traceId);
|
||||||
|
request.setAttribute(TraceUtils.TRACE_ID_CTX_LOG_ID, traceId);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user