diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java index 4b44e4a66..fa95c7328 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataReactiveFilter.java @@ -64,13 +64,13 @@ public class DecodeTransferMetadataReactiveFilter implements WebFilter, Ordered ServerHttpRequest serverHttpRequest = serverWebExchange.getRequest(); Map internalTransitiveMetadata = getIntervalMetadata(serverHttpRequest, CUSTOM_METADATA); - Map internalDisposableMetadata = getIntervalMetadata(serverHttpRequest, CUSTOM_DISPOSABLE_METADATA); Map customTransitiveMetadata = CustomTransitiveMetadataResolver.resolve(serverWebExchange); Map mergedTransitiveMetadata = new HashMap<>(); mergedTransitiveMetadata.putAll(internalTransitiveMetadata); mergedTransitiveMetadata.putAll(customTransitiveMetadata); + Map internalDisposableMetadata = getIntervalMetadata(serverHttpRequest, CUSTOM_DISPOSABLE_METADATA); Map mergedDisposableMetadata = new HashMap<>(internalDisposableMetadata); MetadataContextHolder.init(mergedTransitiveMetadata, mergedDisposableMetadata); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java index a26724348..a67563915 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/DecodeTransferMetadataServletFilter.java @@ -60,13 +60,13 @@ public class DecodeTransferMetadataServletFilter extends OncePerRequestFilter { @NonNull HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { Map internalTransitiveMetadata = getInternalMetadata(httpServletRequest, CUSTOM_METADATA); - Map internalDisposableMetadata = getInternalMetadata(httpServletRequest, CUSTOM_DISPOSABLE_METADATA); Map customTransitiveMetadata = CustomTransitiveMetadataResolver.resolve(httpServletRequest); Map mergedTransitiveMetadata = new HashMap<>(); mergedTransitiveMetadata.putAll(internalTransitiveMetadata); mergedTransitiveMetadata.putAll(customTransitiveMetadata); + Map internalDisposableMetadata = getInternalMetadata(httpServletRequest, CUSTOM_DISPOSABLE_METADATA); Map mergedDisposableMetadata = new HashMap<>(internalDisposableMetadata); MetadataContextHolder.init(mergedTransitiveMetadata, mergedDisposableMetadata); diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java index ccc88ba76..fa63f3df8 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataFeignInterceptor.java @@ -69,28 +69,28 @@ public class EncodeTransferMedataFeignInterceptor implements RequestInterceptor, newestCustomMetadata.put(key, value); } }); - this.doApply(requestTemplate, disposableMetadata, CUSTOM_DISPOSABLE_METADATA); + this.buildMetadataHeader(requestTemplate, disposableMetadata, CUSTOM_DISPOSABLE_METADATA); // process custom metadata finally - this.doApply(requestTemplate, newestCustomMetadata, CUSTOM_METADATA); + this.buildMetadataHeader(requestTemplate, newestCustomMetadata, CUSTOM_METADATA); } /** - * Set metadata into the request header of {@link RestTemplate} . + * Set metadata into the request header for {@link RestTemplate} . * @param requestTemplate instance of {@link RestTemplate} * @param metadata metadata map . * @param headerName target metadata http header name . */ - private void doApply(RequestTemplate requestTemplate, Map metadata, String headerName) { + private void buildMetadataHeader(RequestTemplate requestTemplate, Map metadata, String headerName) { if (!CollectionUtils.isEmpty(metadata)) { - String encodedTransitiveMetadata = JacksonUtils.serialize2Json(metadata); + String encodedMetadata = JacksonUtils.serialize2Json(metadata); requestTemplate.removeHeader(headerName); try { - requestTemplate.header(headerName, encode(encodedTransitiveMetadata, UTF_8)); + requestTemplate.header(headerName, encode(encodedMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { LOG.error("Set header failed.", e); - requestTemplate.header(headerName, encodedTransitiveMetadata); + requestTemplate.header(headerName, encodedMetadata); } } } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java index 82f882ab6..b95d44532 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataRestTemplateInterceptor.java @@ -21,6 +21,7 @@ package com.tencent.cloud.metadata.core; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.HashMap; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -37,6 +38,8 @@ import org.springframework.lang.NonNull; import org.springframework.util.CollectionUtils; import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA; /** * Interceptor used for adding the metadata in http headers from context when web client @@ -57,19 +60,39 @@ public class EncodeTransferMedataRestTemplateInterceptor implements ClientHttpRe // get metadata of current thread MetadataContext metadataContext = MetadataContextHolder.get(); Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); + Map disposableMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_DISPOSABLE); - if (!CollectionUtils.isEmpty(customMetadata)) { - String encodedTransitiveMetadata = JacksonUtils.serialize2Json(customMetadata); + // build custom metadata request header + this.buildMetadataHeader(httpRequest, customMetadata, CUSTOM_METADATA); + + // Clean up one-time metadata coming from upstream . + Map newestCustomMetadata = new HashMap<>(); + customMetadata.forEach((key, value) -> { + if (!disposableMetadata.containsKey(key)) { + newestCustomMetadata.put(key, value); + } + }); + // build custom disposable metadata request header + this.buildMetadataHeader(httpRequest, newestCustomMetadata, CUSTOM_DISPOSABLE_METADATA); + + return clientHttpRequestExecution.execute(httpRequest, bytes); + } + + /** + * Set metadata into the request header for {@link HttpRequest} . + * @param request instance of {@link HttpRequest} + * @param metadata metadata map . + * @param headerName target metadata http header name . + */ + private void buildMetadataHeader(HttpRequest request, Map metadata, String headerName) { + if (!CollectionUtils.isEmpty(metadata)) { + String encodedMetadata = JacksonUtils.serialize2Json(metadata); try { - httpRequest.getHeaders().set(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(encodedTransitiveMetadata, UTF_8)); + request.getHeaders().set(headerName, URLEncoder.encode(encodedMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { - httpRequest.getHeaders().set(MetadataConstant.HeaderName.CUSTOM_METADATA, - encodedTransitiveMetadata); + request.getHeaders().set(headerName, encodedMetadata); } } - - return clientHttpRequestExecution.execute(httpRequest, bytes); } } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java index f8274b506..d132a8d7c 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMedataScgFilter.java @@ -20,6 +20,7 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.HashMap; import java.util.Map; import com.tencent.cloud.common.constant.MetadataConstant; @@ -36,6 +37,8 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.server.ServerWebExchange; import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA; import static org.springframework.cloud.gateway.filter.LoadBalancerClientFilter.LOAD_BALANCER_CLIENT_FILTER_ORDER; /** @@ -64,17 +67,37 @@ public class EncodeTransferMedataScgFilter implements GlobalFilter, Ordered { } Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); - if (!CollectionUtils.isEmpty(customMetadata)) { - String metadataStr = JacksonUtils.serialize2Json(customMetadata); + this.buildMetadataHeader(builder, customMetadata, CUSTOM_METADATA); + + Map disposableMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_DISPOSABLE); + // Clean up one-time metadata coming from upstream . + Map newestCustomMetadata = new HashMap<>(); + customMetadata.forEach((key, value) -> { + if (!disposableMetadata.containsKey(key)) { + newestCustomMetadata.put(key, value); + } + }); + + this.buildMetadataHeader(builder, newestCustomMetadata, CUSTOM_DISPOSABLE_METADATA); + + return chain.filter(exchange.mutate().request(builder.build()).build()); + } + + /** + * Set metadata into the request header for {@link ServerHttpRequest.Builder} . + * @param builder instance of {@link ServerHttpRequest.Builder} + * @param metadata metadata map . + * @param headerName target metadata http header name . + */ + private void buildMetadataHeader(ServerHttpRequest.Builder builder, Map metadata, String headerName) { + if (!CollectionUtils.isEmpty(metadata)) { + String encodedMetadata = JacksonUtils.serialize2Json(metadata); try { - builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(metadataStr, UTF_8)); + builder.header(headerName, URLEncoder.encode(encodedMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { - builder.header(MetadataConstant.HeaderName.CUSTOM_METADATA, metadataStr); + builder.header(headerName, encodedMetadata); } } - - return chain.filter(exchange.mutate().request(builder.build()).build()); } } diff --git a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java index ea75d0176..1d903983a 100644 --- a/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java +++ b/spring-cloud-starter-tencent-metadata-transfer/src/main/java/com/tencent/cloud/metadata/core/EncodeTransferMetadataZuulFilter.java @@ -20,11 +20,11 @@ package com.tencent.cloud.metadata.core; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.HashMap; import java.util.Map; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; -import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.util.JacksonUtils; @@ -32,6 +32,8 @@ import com.tencent.cloud.common.util.JacksonUtils; import org.springframework.util.CollectionUtils; import static com.tencent.cloud.common.constant.ContextConstant.UTF_8; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_DISPOSABLE_METADATA; +import static com.tencent.cloud.common.constant.MetadataConstant.HeaderName.CUSTOM_METADATA; import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.RIBBON_ROUTING_FILTER_ORDER; import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.ROUTE_TYPE; @@ -67,16 +69,38 @@ public class EncodeTransferMetadataZuulFilter extends ZuulFilter { // add new metadata and cover old Map customMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); - if (!CollectionUtils.isEmpty(customMetadata)) { - String metadataStr = JacksonUtils.serialize2Json(customMetadata); + this.buildMetadataHeader(requestContext, customMetadata, CUSTOM_METADATA); + + Map disposableMetadata = metadataContext.getFragmentContext(MetadataContext.FRAGMENT_DISPOSABLE); + // Clean up one-time metadata coming from upstream . + Map newestCustomMetadata = new HashMap<>(); + customMetadata.forEach((key, value) -> { + if (!disposableMetadata.containsKey(key)) { + newestCustomMetadata.put(key, value); + } + }); + + this.buildMetadataHeader(requestContext, newestCustomMetadata, CUSTOM_DISPOSABLE_METADATA); + + return null; + } + + /** + * Set metadata into the request header for {@link RequestContext} . + * + * @param context instance of {@link RequestContext} + * @param metadata metadata map . + * @param headerName target metadata http header name . + */ + private void buildMetadataHeader(RequestContext context, Map metadata, String headerName) { + if (!CollectionUtils.isEmpty(metadata)) { + String encodedMetadata = JacksonUtils.serialize2Json(metadata); try { - requestContext.addZuulRequestHeader(MetadataConstant.HeaderName.CUSTOM_METADATA, - URLEncoder.encode(metadataStr, UTF_8)); + context.addZuulRequestHeader(headerName, URLEncoder.encode(encodedMetadata, UTF_8)); } catch (UnsupportedEncodingException e) { - requestContext.addZuulRequestHeader(MetadataConstant.HeaderName.CUSTOM_METADATA, metadataStr); + context.addZuulRequestHeader(headerName, encodedMetadata); } } - return null; } } diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java index 06ce41265..0ef6e551c 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContext.java @@ -46,6 +46,11 @@ public class MetadataContext { */ public static final String FRAGMENT_DISPOSABLE = "disposable"; + /** + * upstream disposable Context. + */ + public static final String FRAGMENT_UPSTREAM_DISPOSABLE = "upstream-disposable"; + private static final Logger LOG = LoggerFactory.getLogger(MetadataContext.class); /** * Namespace of local instance. diff --git a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java index 5337c0efc..4f7a6e390 100644 --- a/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java +++ b/spring-cloud-tencent-commons/src/main/java/com/tencent/cloud/common/metadata/MetadataContextHolder.java @@ -29,6 +29,7 @@ import org.springframework.util.CollectionUtils; import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_DISPOSABLE; import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_TRANSITIVE; +import static com.tencent.cloud.common.metadata.MetadataContext.FRAGMENT_UPSTREAM_DISPOSABLE; /** * Metadata Context Holder. @@ -96,22 +97,17 @@ public final class MetadataContextHolder { Map mergedTransitiveMetadata = new HashMap<>(); mergedTransitiveMetadata.putAll(staticTransitiveMetadata); mergedTransitiveMetadata.putAll(dynamicTransitiveMetadata); + metadataContext.putFragmentContext(FRAGMENT_TRANSITIVE, Collections.unmodifiableMap(mergedTransitiveMetadata)); Map mergedDisposableMetadata = new HashMap<>(dynamicDisposableMetadata); + metadataContext.putFragmentContext(FRAGMENT_UPSTREAM_DISPOSABLE, Collections.unmodifiableMap(mergedDisposableMetadata)); - metadataContext.putFragmentContext(FRAGMENT_TRANSITIVE, Collections.unmodifiableMap(mergedTransitiveMetadata)); - metadataContext.putFragmentContext(FRAGMENT_DISPOSABLE, Collections.unmodifiableMap(mergedDisposableMetadata)); + Map staticDisposableMetadata = metadataContext.getFragmentContext(FRAGMENT_DISPOSABLE); + metadataContext.putFragmentContext(FRAGMENT_DISPOSABLE, Collections.unmodifiableMap(staticDisposableMetadata)); } MetadataContextHolder.set(metadataContext); } - /** - * Clean up one-time metadata coming from upstream . - */ - public static void cleanDisposableMetadata() { - - } - /** * Remove metadata context. */ diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/pom.xml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/pom.xml similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/pom.xml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/pom.xml index 1c1306805..106c2ed78 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/pom.xml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/pom.xml @@ -10,8 +10,8 @@ 4.0.0 - metadata-caller-service - Spring Cloud Tencent Metadata Transfer Caller Service + metadata-backend + Spring Cloud Tencent Metadata Transfer Backend Service diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendController.java similarity index 94% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendController.java index 106cb0638..4b383f8bb 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendController.java @@ -35,10 +35,10 @@ import org.springframework.web.bind.annotation.RestController; * @author Palmer Xu */ @RestController -@RequestMapping("/metadata/service/callee2") -public class MetadataCalleeController { +@RequestMapping("/metadata/service/backend") +public class MetadataBackendController { - private static final Logger LOG = LoggerFactory.getLogger(MetadataCalleeController.class); + private static final Logger LOG = LoggerFactory.getLogger(MetadataBackendController.class); @Value("${server.port:0}") private int port; @@ -61,5 +61,4 @@ public class MetadataCalleeController { return customMetadataMap; } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java similarity index 91% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java index 69c0b2168..74d956c7a 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java @@ -26,10 +26,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @author Palmer Xu */ @SpringBootApplication -public class MetadataCalleeService2 { +public class MetadataBackendService { public static void main(String[] args) { - SpringApplication.run(MetadataCalleeService2.class, args); + SpringApplication.run(MetadataBackendService.class, args); } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/resources/bootstrap.yml similarity index 82% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/resources/bootstrap.yml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/resources/bootstrap.yml index 1bf197361..4188f3cc3 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-backend/src/main/resources/bootstrap.yml @@ -2,7 +2,7 @@ server: port: 48088 spring: application: - name: MetadataCalleeService2 + name: MetadataBackendService cloud: polaris: address: grpc://183.47.111.80:8091 diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/pom.xml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/pom.xml similarity index 92% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/pom.xml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/pom.xml index 2af871c5b..4b6adb14e 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service2/pom.xml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/pom.xml @@ -10,8 +10,8 @@ 4.0.0 - metadata-callee-service2 - Spring Cloud Tencent Metadata Transfer Callee Service 2 + metadata-frontend + Spring Cloud Tencent Metadata Transfer Frontent Service diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerController.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendController.java similarity index 89% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerController.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendController.java index cf9ec84eb..e3184df0d 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerController.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendController.java @@ -35,20 +35,20 @@ import org.springframework.web.client.RestTemplate; * @author Palmer Xu */ @RestController -@RequestMapping("/metadata/service/caller") -public class MetadataCallerController { +@RequestMapping("/metadata/service/frontend") +public class MetadataFrontendController { private final RestTemplate restTemplate; - private final MetadataCalleeService metadataCalleeService; + private final MetadataMiddleService metadataMiddleService; private final MetadataLocalProperties metadataLocalProperties; - public MetadataCallerController(RestTemplate restTemplate, - MetadataCalleeService metadataCalleeService, + public MetadataFrontendController(RestTemplate restTemplate, + MetadataMiddleService metadataMiddleService, MetadataLocalProperties metadataLocalProperties) { this.restTemplate = restTemplate; - this.metadataCalleeService = metadataCalleeService; + this.metadataMiddleService = metadataMiddleService; this.metadataLocalProperties = metadataLocalProperties; } @@ -61,7 +61,7 @@ public class MetadataCallerController { Map> ret = Maps.newHashMap(); // Call remote service with feign client - Map calleeMetadata = metadataCalleeService.info(); + Map calleeMetadata = metadataMiddleService.info(); ret.put("callee-transitive-metadata", calleeMetadata); // Get Custom Metadata From Context @@ -105,5 +105,4 @@ public class MetadataCallerController { public String healthCheck() { return "pk ok"; } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerService.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendService.java similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerService.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendService.java index ae1e49c64..83ddb278d 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCallerService.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataFrontendService.java @@ -31,10 +31,10 @@ import org.springframework.web.client.RestTemplate; */ @SpringBootApplication @EnableFeignClients -public class MetadataCallerService { +public class MetadataFrontendService { public static void main(String[] args) { - SpringApplication.run(MetadataCallerService.class, args); + SpringApplication.run(MetadataFrontendService.class, args); } @Bean @@ -42,5 +42,4 @@ public class MetadataCallerService { public RestTemplate restTemplate() { return new RestTemplate(); } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeService.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleService.java similarity index 85% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeService.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleService.java index 65bea6707..97faafdc1 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeService.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleService.java @@ -27,15 +27,14 @@ import org.springframework.web.bind.annotation.GetMapping; * * @author Palmer Xu */ -@FeignClient(value = "MetadataCalleeService", - fallback = MetadataCalleeServiceFallback.class) -public interface MetadataCalleeService { +@FeignClient(value = "MetadataMiddleService", + fallback = MetadataMiddleServiceFallback.class) +public interface MetadataMiddleService { /** * Get information of callee. * @return information of callee */ - @GetMapping("/metadata/service/callee/info") + @GetMapping("/metadata/service/middle/info") Map info(); - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeServiceFallback.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleServiceFallback.java similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeServiceFallback.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleServiceFallback.java index ba508831a..e20b5139d 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataCalleeServiceFallback.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/java/com/tencent/cloud/metadata/service/caller/MetadataMiddleServiceFallback.java @@ -29,11 +29,10 @@ import org.springframework.stereotype.Component; * @author Palmer Xu */ @Component -public class MetadataCalleeServiceFallback implements MetadataCalleeService { +public class MetadataMiddleServiceFallback implements MetadataMiddleService { @Override public Map info() { return Maps.newHashMap(); } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/resources/bootstrap.yml similarity index 88% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/resources/bootstrap.yml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/resources/bootstrap.yml index 6b1d46521..e2e59590c 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-frontend/src/main/resources/bootstrap.yml @@ -2,7 +2,7 @@ server: port: 48080 spring: application: - name: MetadataCallerService + name: MetadataFrontendService cloud: polaris: address: grpc://183.47.111.80:8091 @@ -12,7 +12,7 @@ spring: enabled: true register: true heartbeat-enabled: true - health-check-url: /metadata/service/caller/healthCheck + health-check-url: /metadata/service/frontend/healthCheck tencent: metadata: # Defined your metadata keys & values diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/pom.xml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/pom.xml similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/pom.xml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/pom.xml index 237c9877f..41c4cd13f 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/pom.xml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/pom.xml @@ -10,8 +10,8 @@ 4.0.0 - metadata-callee-service - Spring Cloud Tencent Metadata Transfer Callee Service + metadata-middle + Spring Cloud Tencent Metadata Transfer Middle Service diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java similarity index 85% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java index eebb427e9..d4967dee1 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendService.java @@ -27,15 +27,15 @@ import org.springframework.web.bind.annotation.GetMapping; * * @author Palmer Xu */ -@FeignClient(value = "MetadataCalleeService2", - fallback = MetadataCalleeService2Fallback.class) -public interface MetadataCalleeService2 { +@FeignClient(value = "MetadataBackendService2", + fallback = MetadataBackendServiceFallback.class) +public interface MetadataBackendService { /** * Get information of callee. * @return information of callee */ - @GetMapping("/metadata/service/callee2/info") + @GetMapping("/metadata/service/backend/info") Map info(); } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2Fallback.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendServiceFallback.java similarity index 92% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2Fallback.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendServiceFallback.java index 45f7a8b44..6097dcb0d 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService2Fallback.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataBackendServiceFallback.java @@ -29,11 +29,10 @@ import org.springframework.stereotype.Component; * @author Palmer Xu */ @Component -public class MetadataCalleeService2Fallback implements MetadataCalleeService2 { +public class MetadataBackendServiceFallback implements MetadataBackendService { @Override public Map info() { return Maps.newHashMap(); } - } diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java similarity index 90% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java index 41e8ae3b5..39b7c7e2e 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeController.java @@ -44,12 +44,12 @@ public class MetadataCalleeController { @Value("${server.port:0}") private int port; - private final MetadataCalleeService2 metadataCalleeService2; + private final MetadataBackendService metadataBackendService; private final RestTemplate restTemplate; - public MetadataCalleeController(MetadataCalleeService2 metadataCalleeService2, RestTemplate restTemplate) { - this.metadataCalleeService2 = metadataCalleeService2; + public MetadataCalleeController(MetadataBackendService metadataBackendService, RestTemplate restTemplate) { + this.metadataBackendService = metadataBackendService; this.restTemplate = restTemplate; } @@ -70,7 +70,7 @@ public class MetadataCalleeController { }); // Call remote service with Feign - Map calleeMetadata2 = metadataCalleeService2.info(); + Map calleeMetadata2 = metadataBackendService.info(); calleeMetadata2.forEach((key, value) -> { LOG.info("Feign Callee2 Metadata (Key-Value): {} : {}", key, value); }); diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService.java b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataMiddleService.java similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService.java rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataMiddleService.java index 6858ada26..1b2aabd6e 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataCalleeService.java +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/java/com/tencent/cloud/metadata/service/callee/MetadataMiddleService.java @@ -31,10 +31,10 @@ import org.springframework.web.client.RestTemplate; */ @SpringBootApplication @EnableFeignClients -public class MetadataCalleeService { +public class MetadataMiddleService { public static void main(String[] args) { - SpringApplication.run(MetadataCalleeService.class, args); + SpringApplication.run(MetadataMiddleService.class, args); } @Bean diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/resources/bootstrap.yml similarity index 93% rename from spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/resources/bootstrap.yml rename to spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/resources/bootstrap.yml index 529bbbc76..365882447 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/metadata-middle/src/main/resources/bootstrap.yml @@ -2,7 +2,7 @@ server: port: 48084 spring: application: - name: MetadataCalleeService + name: MetadataMiddleService cloud: polaris: address: grpc://183.47.111.80:8091 diff --git a/spring-cloud-tencent-examples/metadata-transfer-example/pom.xml b/spring-cloud-tencent-examples/metadata-transfer-example/pom.xml index d692fdce4..2cbc55a3b 100644 --- a/spring-cloud-tencent-examples/metadata-transfer-example/pom.xml +++ b/spring-cloud-tencent-examples/metadata-transfer-example/pom.xml @@ -15,9 +15,9 @@ Spring Cloud Starter Tencent Metadata Transfer Example - metadata-callee-service - metadata-callee-service2 - metadata-caller-service + metadata-frontend + metadata-middle + metadata-backend