From 0aa15f345fac7e685752de238437a2d30313ed02 Mon Sep 17 00:00:00 2001 From: shedfreewu Date: Tue, 19 Aug 2025 21:13:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20callee=20metadata=20?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E4=B8=B4=E6=97=B6=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reporter/CircuitBreakerPlugin.java | 14 ++++---------- .../reporter/ExceptionCircuitBreakerReporter.java | 14 +++++--------- .../reporter/SuccessCircuitBreakerReporter.java | 14 +++++--------- .../ExceptionCircuitBreakerReporterTest.java | 6 +++--- .../SuccessCircuitBreakerReporterTest.java | 6 +++--- .../cloud/common/util/MetadataContextUtils.java | 5 ++++- .../plugin/fault/FaultInjectionPrePlugin.java | 9 ++------- .../attribute/tsf/TsfSpanAttributesProvider.java | 6 +++--- .../tencent/tsf/unit/core/TencentUnitContext.java | 12 ++++++------ ...plateBlockingLoadBalancerClientInterceptor.java | 4 ++-- .../rpc/enhancement/util/EnhancedPluginUtils.java | 2 +- 11 files changed, 38 insertions(+), 54 deletions(-) diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPlugin.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPlugin.java index 42072c760..221cde125 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPlugin.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/CircuitBreakerPlugin.java @@ -18,7 +18,7 @@ package com.tencent.cloud.polaris.circuitbreaker.reporter; import com.tencent.cloud.common.constant.ContextConstant; -import com.tencent.cloud.common.metadata.MetadataContextHolder; +import com.tencent.cloud.common.util.MetadataContextUtils; import com.tencent.cloud.polaris.circuitbreaker.PolarisCircuitBreaker; import com.tencent.cloud.polaris.circuitbreaker.instrument.resttemplate.PolarisCircuitBreakerHttpResponse; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPlugin; @@ -28,7 +28,6 @@ import com.tencent.cloud.rpc.enhancement.plugin.EnhancedRequestContext; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedResponseContext; import com.tencent.cloud.rpc.enhancement.plugin.reporter.SuccessPolarisReporter; import com.tencent.polaris.circuitbreak.client.exception.CallAbortedException; -import com.tencent.polaris.metadata.core.MetadataType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -77,8 +76,8 @@ public class CircuitBreakerPlugin implements EnhancedPlugin { CircuitBreaker circuitBreaker = circuitBreakerFactory.create(governanceNamespace + "#" + host + "#" + path + "#http#" + httpMethod); if (circuitBreaker instanceof PolarisCircuitBreaker) { PolarisCircuitBreaker polarisCircuitBreaker = (PolarisCircuitBreaker) circuitBreaker; - putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); - putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME, System.currentTimeMillis()); + MetadataContextUtils.putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); + MetadataContextUtils.putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME, System.currentTimeMillis()); try { polarisCircuitBreaker.acquirePermission(); @@ -88,7 +87,7 @@ public class CircuitBreakerPlugin implements EnhancedPlugin { polarisCircuitBreaker.reportStatus(e); if (e.getFallbackInfo() != null) { Object fallbackResponse = new PolarisCircuitBreakerHttpResponse(e.getFallbackInfo()); - putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_FALLBACK_HTTP_RESPONSE, fallbackResponse); + MetadataContextUtils.putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_FALLBACK_HTTP_RESPONSE, fallbackResponse); } throw e; } @@ -105,9 +104,4 @@ public class CircuitBreakerPlugin implements EnhancedPlugin { public int getOrder() { return CIRCUIT_BREAKER_REPORTER_PLUGIN_ORDER; } - - private void putMetadataObjectValue(String key, Object value) { - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). - putMetadataObjectValue(key, value); - } } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java index 77245c31e..355c68b4d 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporter.java @@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit; import com.tencent.cloud.common.constant.ContextConstant; import com.tencent.cloud.common.metadata.MetadataContextHolder; +import com.tencent.cloud.common.util.MetadataContextUtils; import com.tencent.cloud.polaris.circuitbreaker.PolarisCircuitBreaker; import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementReporterProperties; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPlugin; @@ -61,11 +62,6 @@ public class ExceptionCircuitBreakerReporter implements EnhancedPlugin { this.circuitBreakAPI = circuitBreakAPI; } - private static boolean existMetadataValue(MetadataObjectValue metadataObjectValue) { - return Optional.ofNullable(metadataObjectValue).map(MetadataObjectValue::getObjectValue). - map(Optional::isPresent).orElse(false); - } - @Override public String getName() { return ExceptionCircuitBreakerReporter.class.getName(); @@ -103,15 +99,15 @@ public class ExceptionCircuitBreakerReporter implements EnhancedPlugin { circuitBreakAPI.report(resourceStat); MetadataObjectValue circuitBreakerObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER); MetadataObjectValue startTimeMilliObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME); - boolean existCircuitBreaker = existMetadataValue(circuitBreakerObject); - boolean existStartTime = existMetadataValue(startTimeMilliObject); + boolean existCircuitBreaker = MetadataContextUtils.existMetadataValue(circuitBreakerObject); + boolean existStartTime = MetadataContextUtils.existMetadataValue(startTimeMilliObject); if (existCircuitBreaker && existStartTime) { PolarisCircuitBreaker polarisCircuitBreaker = circuitBreakerObject.getObjectValue().get(); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java index 3d64e8d94..632257972 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporter.java @@ -22,6 +22,7 @@ import java.util.concurrent.TimeUnit; import com.tencent.cloud.common.constant.ContextConstant; import com.tencent.cloud.common.metadata.MetadataContextHolder; +import com.tencent.cloud.common.util.MetadataContextUtils; import com.tencent.cloud.polaris.circuitbreaker.PolarisCircuitBreaker; import com.tencent.cloud.polaris.context.CircuitBreakerStatusCodeException; import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementReporterProperties; @@ -65,11 +66,6 @@ public class SuccessCircuitBreakerReporter implements EnhancedPlugin { this.circuitBreakAPI = circuitBreakAPI; } - private static boolean existMetadataValue(MetadataObjectValue metadataObjectValue) { - return Optional.ofNullable(metadataObjectValue).map(MetadataObjectValue::getObjectValue). - map(Optional::isPresent).orElse(false); - } - @Override public String getName() { return SuccessCircuitBreakerReporter.class.getName(); @@ -107,15 +103,15 @@ public class SuccessCircuitBreakerReporter implements EnhancedPlugin { circuitBreakAPI.report(resourceStat); MetadataObjectValue circuitBreakerObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER); MetadataObjectValue startTimeMilliObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME); - boolean existCircuitBreaker = existMetadataValue(circuitBreakerObject); - boolean existStartTime = existMetadataValue(startTimeMilliObject); + boolean existCircuitBreaker = MetadataContextUtils.existMetadataValue(circuitBreakerObject); + boolean existStartTime = MetadataContextUtils.existMetadataValue(startTimeMilliObject); if (existCircuitBreaker && existStartTime) { PolarisCircuitBreaker polarisCircuitBreaker = circuitBreakerObject.getObjectValue().get(); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java index ba578e025..a40185d4a 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/ExceptionCircuitBreakerReporterTest.java @@ -170,9 +170,9 @@ public class ExceptionCircuitBreakerReporterTest { pluginContext.setTargetServiceInstance(serviceInstance, null); pluginContext.setThrowable(new RuntimeException()); - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME, System.currentTimeMillis()); exceptionCircuitBreakerReporter.run(pluginContext); @@ -205,7 +205,7 @@ public class ExceptionCircuitBreakerReporterTest { pluginContext.setTargetServiceInstance(serviceInstance, null); pluginContext.setThrowable(new RuntimeException()); // not exist circuit CIRCUIT_BREAKER_START_TIME - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); exceptionCircuitBreakerReporter.run(pluginContext); diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java index 7f42b5ceb..540bc51e3 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/reporter/SuccessCircuitBreakerReporterTest.java @@ -183,9 +183,9 @@ public class SuccessCircuitBreakerReporterTest { pluginContext.setResponse(response); pluginContext.setTargetServiceInstance(serviceInstance, null); - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_START_TIME, System.currentTimeMillis()); successCircuitBreakerReporter.run(pluginContext); @@ -217,7 +217,7 @@ public class SuccessCircuitBreakerReporterTest { pluginContext.setResponse(response); pluginContext.setTargetServiceInstance(serviceInstance, null); // not exist circuit CIRCUIT_BREAKER_START_TIME - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(ContextConstant.CircuitBreaker.POLARIS_CIRCUIT_BREAKER, polarisCircuitBreaker); successCircuitBreakerReporter.run(pluginContext); diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/MetadataContextUtils.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/MetadataContextUtils.java index ea889bc38..a18e4364b 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/MetadataContextUtils.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/util/MetadataContextUtils.java @@ -37,8 +37,11 @@ public final class MetadataContextUtils { private MetadataContextUtils() { } + /** + * use callee's custom metadata to store local thread's metadata. caller's metadata is for remote upstream service. + */ public static void putMetadataObjectValue(String key, Object value) { - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). + MetadataContextHolder.get().getMetadataContainer(MetadataType.CUSTOM, false). putMetadataObjectValue(key, value); } diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-injection-plugin/src/main/java/com/tencent/cloud/plugin/fault/FaultInjectionPrePlugin.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-injection-plugin/src/main/java/com/tencent/cloud/plugin/fault/FaultInjectionPrePlugin.java index a02b982bf..fa612c0b8 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-injection-plugin/src/main/java/com/tencent/cloud/plugin/fault/FaultInjectionPrePlugin.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-fault-injection-plugin/src/main/java/com/tencent/cloud/plugin/fault/FaultInjectionPrePlugin.java @@ -22,6 +22,7 @@ import java.util.HashMap; import com.tencent.cloud.common.constant.ContextConstant; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; +import com.tencent.cloud.common.util.MetadataContextUtils; import com.tencent.cloud.plugin.fault.config.FaultInjectionProperties; import com.tencent.cloud.plugin.fault.instrument.resttemplate.PolarisFaultInjectionHttpResponse; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPlugin; @@ -37,7 +38,6 @@ import com.tencent.polaris.fault.api.rpc.DelayResult; import com.tencent.polaris.fault.api.rpc.FaultRequest; import com.tencent.polaris.fault.api.rpc.FaultResponse; import com.tencent.polaris.fault.client.exception.FaultInjectionException; -import com.tencent.polaris.metadata.core.MetadataType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,18 +94,13 @@ public class FaultInjectionPrePlugin implements EnhancedPlugin { CircuitBreakerStatus.FallbackInfo fallbackInfo = new CircuitBreakerStatus.FallbackInfo(abortResult.getAbortCode(), new HashMap<>(), ""); if (ClassUtils.isClassPresent("org.springframework.http.client.ClientHttpResponse")) { Object fallbackResponse = new PolarisFaultInjectionHttpResponse(fallbackInfo); - putMetadataObjectValue(ContextConstant.FaultInjection.FAULT_INJECTION_FALLBACK_HTTP_RESPONSE, fallbackResponse); + MetadataContextUtils.putMetadataObjectValue(ContextConstant.FaultInjection.FAULT_INJECTION_FALLBACK_HTTP_RESPONSE, fallbackResponse); } throw new FaultInjectionException(fallbackInfo); } } } - private void putMetadataObjectValue(String key, Object value) { - MetadataContextHolder.get().getMetadataContainer(MetadataType.APPLICATION, true). - putMetadataObjectValue(key, value); - } - @Override public void handlerThrowable(EnhancedPluginContext context, Throwable throwable) { LOG.error("FaultInjectionPrePlugin runs failed. context=[{}].", context, throwable); diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/tsf/TsfSpanAttributesProvider.java b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/tsf/TsfSpanAttributesProvider.java index 3913b8173..d712e735b 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/tsf/TsfSpanAttributesProvider.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-starter-tencent-trace-plugin/src/main/java/com/tencent/cloud/plugin/trace/attribute/tsf/TsfSpanAttributesProvider.java @@ -65,14 +65,14 @@ public class TsfSpanAttributesProvider implements SpanAttributesProvider { } MetadataObjectValue langTagObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.LANE_TAG); if (MetadataContextUtils.existMetadataValue(langTagObject)) { attributes.put(OtUtils.OTEL_LANE_ID_KEY, langTagObject.getObjectValue().get().getValue()); } MetadataObjectValue> extraTraceAttributeObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.Trace.EXTRA_TRACE_ATTRIBUTES); if (MetadataContextUtils.existMetadataValue(extraTraceAttributeObject)) { Map extraTraceAttributes = extraTraceAttributeObject.getObjectValue().get(); @@ -101,7 +101,7 @@ public class TsfSpanAttributesProvider implements SpanAttributesProvider { public Map getServerFinallySpanAttributes(EnhancedPluginContext context) { Map attributes = new HashMap<>(); MetadataObjectValue> extraTraceAttributeObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.Trace.EXTRA_TRACE_ATTRIBUTES); if (MetadataContextUtils.existMetadataValue(extraTraceAttributeObject)) { Map extraTraceAttributes = extraTraceAttributeObject.getObjectValue().get(); diff --git a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java index 36c7b51c8..034ac32ed 100644 --- a/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java +++ b/spring-cloud-tencent-plugin-starters/spring-cloud-tencent-unit-plugin/src/main/java/com/tencent/tsf/unit/core/TencentUnitContext.java @@ -149,7 +149,7 @@ public final class TencentUnitContext { private static Map getUserContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(USER_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); @@ -163,7 +163,7 @@ public final class TencentUnitContext { private static Map getSystemContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(SYSTEM_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); @@ -177,7 +177,7 @@ public final class TencentUnitContext { private static Map getRouteContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ROUTE_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); @@ -191,7 +191,7 @@ public final class TencentUnitContext { private static Map getSourceContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(SOURCE_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); @@ -205,7 +205,7 @@ public final class TencentUnitContext { private static Map getGrayUserContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(GRAY_USER_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); @@ -219,7 +219,7 @@ public final class TencentUnitContext { private static Map getGraySystemContext() { MetadataObjectValue> metadataObjectValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(GRAY_SYSTEM_CONTEXTS_KEY); if (MetadataContextUtils.existMetadataValue(metadataObjectValue)) { return metadataObjectValue.getObjectValue().get(); diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/resttemplate/EnhancedRestTemplateBlockingLoadBalancerClientInterceptor.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/resttemplate/EnhancedRestTemplateBlockingLoadBalancerClientInterceptor.java index a34874541..8f7739504 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/resttemplate/EnhancedRestTemplateBlockingLoadBalancerClientInterceptor.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/instrument/resttemplate/EnhancedRestTemplateBlockingLoadBalancerClientInterceptor.java @@ -127,7 +127,7 @@ public class EnhancedRestTemplateBlockingLoadBalancerClientInterceptor { } catch (CallAbortedException callAbortedException) { MetadataObjectValue fallbackResponseValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.CircuitBreaker.CIRCUIT_BREAKER_FALLBACK_HTTP_RESPONSE); boolean existFallback = Optional.ofNullable(fallbackResponseValue). @@ -143,7 +143,7 @@ public class EnhancedRestTemplateBlockingLoadBalancerClientInterceptor { } catch (FaultInjectionException faultInjectionException) { MetadataObjectValue fallbackResponseValue = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.FaultInjection.FAULT_INJECTION_FALLBACK_HTTP_RESPONSE); boolean existFallback = Optional.ofNullable(fallbackResponseValue). diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/util/EnhancedPluginUtils.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/util/EnhancedPluginUtils.java index 791128c0c..52e1e9f8d 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/util/EnhancedPluginUtils.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/util/EnhancedPluginUtils.java @@ -43,7 +43,7 @@ public final class EnhancedPluginUtils { public static EnhancedPluginContext getEnhancedPluginContextFromMetadataContext() { MetadataObjectValue enhancedPluginContextObject = MetadataContextHolder.get(). - getMetadataContainer(MetadataType.APPLICATION, true). + getMetadataContainer(MetadataType.CUSTOM, false). getMetadataValue(ContextConstant.ENHANCED_PLUGIN_CONTEXT); if (MetadataContextUtils.existMetadataValue(enhancedPluginContextObject)) {