From d41bcb2e976e77d35eeb9d70f2d583bb1a7f73c8 Mon Sep 17 00:00:00 2001 From: hongqiaowei Date: Sun, 26 Sep 2021 20:26:03 +0800 Subject: [PATCH] Optimize default settings of trace id --- .../src/main/resources/application.yml | 7 +++++- .../src/main/java/we/config/SystemConfig.java | 4 ++-- .../java/we/filter/FlowControlFilter.java | 22 +++++++++++-------- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/fizz-bootstrap/src/main/resources/application.yml b/fizz-bootstrap/src/main/resources/application.yml index de9adfd..ad79bf3 100644 --- a/fizz-bootstrap/src/main/resources/application.yml +++ b/fizz-bootstrap/src/main/resources/application.yml @@ -105,4 +105,9 @@ refresh-local-cache: fizz: aggregate: - writeMapNullValue: false \ No newline at end of file + writeMapNullValue: false + +fizz-trace-id: + header: X-Trace-Id # default + value-strategy: requestId # default, or can be uuid + value-prefix: fizz # default diff --git a/fizz-core/src/main/java/we/config/SystemConfig.java b/fizz-core/src/main/java/we/config/SystemConfig.java index 54337e5..4e96476 100644 --- a/fizz-core/src/main/java/we/config/SystemConfig.java +++ b/fizz-core/src/main/java/we/config/SystemConfig.java @@ -72,10 +72,10 @@ public class SystemConfig { @Value("${fizz-trace-id.header:X-Trace-Id}") private String fizzTraceIdHeader; - @Value("${fizz-trace-id.value-strategy:}") + @Value("${fizz-trace-id.value-strategy:requestId}") private String fizzTraceIdValueStrategy; - @Value("${fizz-trace-id.value-prefix:}") + @Value("${fizz-trace-id.value-prefix:fizz}") private String fizzTraceIdValuePrefix; public String fizzTraceIdHeader() { diff --git a/fizz-core/src/main/java/we/filter/FlowControlFilter.java b/fizz-core/src/main/java/we/filter/FlowControlFilter.java index da2c9f4..108407a 100644 --- a/fizz-core/src/main/java/we/filter/FlowControlFilter.java +++ b/fizz-core/src/main/java/we/filter/FlowControlFilter.java @@ -59,13 +59,15 @@ public class FlowControlFilter extends FizzWebFilter { private static final Logger log = LoggerFactory.getLogger(FlowControlFilter.class); - private static final String admin = "admin"; + private static final String admin = "admin"; - private static final String actuator = "actuator"; + private static final String actuator = "actuator"; - private static final String uuid = "uuid"; + private static final String uuid = "uuid"; - public static final String ADMIN_REQUEST = "$a"; + private static final String defaultFizzTraceIdValueStrategy = "requestId"; + + public static final String ADMIN_REQUEST = "$a"; @Resource private FlowControlFilterProperties flowControlFilterProperties; @@ -166,16 +168,18 @@ public class FlowControlFilter extends FizzWebFilter { private void setTraceId(ServerWebExchange exchange) { String traceId = exchange.getRequest().getHeaders().getFirst(systemConfig.fizzTraceIdHeader()); if (StringUtils.isBlank(traceId)) { - if (StringUtils.isBlank(systemConfig.fizzTraceIdValueStrategy())) { + String fizzTraceIdValueStrategy = systemConfig.fizzTraceIdValueStrategy(); + if (fizzTraceIdValueStrategy.equals(defaultFizzTraceIdValueStrategy)) { traceId = exchange.getRequest().getId(); - } else if (systemConfig.fizzTraceIdValueStrategy().equals(uuid)) { + } else if (fizzTraceIdValueStrategy.equals(uuid)) { traceId = UUIDUtil.getUUID(); } else { - throw Utils.runtimeExceptionWithoutStack("unsupported " + systemConfig.fizzTraceIdValueStrategy() + " trace id value strategy!"); + throw Utils.runtimeExceptionWithoutStack("unsupported " + fizzTraceIdValueStrategy + " trace id value strategy!"); } } - if (StringUtils.isNotBlank(systemConfig.fizzTraceIdValuePrefix())) { - traceId = systemConfig.fizzTraceIdValuePrefix() + traceId; + String fizzTraceIdValuePrefix = systemConfig.fizzTraceIdValuePrefix(); + if (StringUtils.isNotBlank(fizzTraceIdValuePrefix)) { + traceId = fizzTraceIdValuePrefix + Constants.Symbol.DASH + traceId; } exchange.getAttributes().put(WebUtils.TRACE_ID, traceId); }