# Spring Cloud Tencent Metadata Transfer example ## Example Introduction This example shows how to use ```spring-cloud-starter-tencent-metadata-transfer``` in Spring Cloud project for its features. This example contains ```metadata-callee-service```、```metadata-caller-service```. ## Instruction ### Configuration The configuration is as the following shows. ${ip} and ${port} are Polaris backend IP address and port number. ```yaml spring: application: name: ${application.name} cloud: polaris: address: ${ip}:${port} ``` ### Maven Dependency ```xml com.tencent.cloud spring-cloud-starter-tencent-metadata-transfer ``` ### Launching Example #### Launching Polaris Backend Service Reference to [Polaris Getting Started](https://github.com/PolarisMesh/polaris#getting-started) #### Launching Application - IDEA Launching - ```spring-cloud-tencent-examples/metadata-transfer-example/metadata-callee-service```‘s```MetadataCalleeService``` - ```spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service```'s```MetadataCallerService``` - Maven Package Launching Execute under ```spring-cloud-tencent-examples/metadata-transfer-example``` ```sh mvn clean package ``` Then find the jars under ```metadata-callee-service```、```metadata-caller-service```, and run it: ``` java -jar ${app.jar} ``` Launch application, change ${app.jar} to jar's package name. ### Metadata Configuration In the ```bootstrap.yml``` configuration file of the ```spring-cloud-tencent-examples/metadata-transfer-example/metadata-caller-service``` project ```yaml spring: cloud: tencent: metadata: # Defined your metadata keys & values content: # Example: intransitive CUSTOM-METADATA-KEY-LOCAL: CUSTOM-VALUE-LOCAL # Example: transitive CUSTOM-METADATA-KEY-TRANSITIVE: CUSTOM-VALUE-TRANSITIVE # Assigned which metadata key-value will be passed along the link transitive: - CUSTOM-METADATA-KEY-TRANSITIVE ``` ### Verify #### Request Invoke ```shell curl -L -X GET 'http://127.0.0.1:48080/metadata/service/caller/feign/info' ``` Expected return rate ``` { "caller-metadata-contents": { "CUSTOM-METADATA-KEY-TRANSITIVE": "CUSTOM-VALUE-TRANSITIVE", "CUSTOM-METADATA-KEY-LOCAL": "CUSTOM-VALUE-LOCAL" }, "callee-transitive-metadata": { "CUSTOM-METADATA-KEY-TRANSITIVE": "CUSTOM-VALUE-TRANSITIVE" }, "caller-transitive-metadata": { "CUSTOM-METADATA-KEY-TRANSITIVE": "CUSTOM-VALUE-TRANSITIVE" } } ``` Response value description - Key `caller-metadata-contents` represents all metadata configured by default in the `metadata-caller-service` project. - Key `caller-transitive-metadata` represents the list of metadata that can be passed in the link specified in the `metadata-caller-service` item. - Key `callee-transitive-metadata` represents the list of upstream metadata passed when the `metadata-callee-service` project is called by `metadata-caller-service`. ### Wiki Reference See [Spring Cloud Tencent Metadata Transfer Usage Document](https://github.com/Tencent/spring-cloud-tencent/wiki/Spring-Cloud-Tencent-Metadata-Transfer-Usage-Document) for more reference .