Spring Cloud 2020 & 2021 SDK 使用说明

最近更新时间:2025-06-25 10:26:11

我的收藏

使用说明及限制

1. 添加 TSF 依赖
通用:在pom.xml中使用 spring-cloud-tsf-dependencies 做依赖管理(以下两种方式中选一种即可)
修改 parent 依赖
<parent>
<groupId>com.tencent.tsf</groupId>
<artifactId>spring-cloud-tsf-dependencies</artifactId>
<version><!-- 调整为 SDK 长期维护(LTS)版本号 --></version>
</parent>
dependencyManagement 中添加(适用于项目有统一的 parent 依赖)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.tencent.tsf</groupId>
<artifactId>spring-cloud-tsf-dependencies</artifactId>
<version><!-- 调整为 SDK 长期维护(LTS)版本号 --></version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
SDK 版本号请参考:
普通微服务:向工程中添加spring-cloud-tsf-starter依赖。
<dependency>
<groupId>com.tencent.tsf</groupId>
<artifactId>spring-cloud-tsf-starter</artifactId>
</dependency>
spring-cloud-tsf-starter中包含了服务注册发现、服务路由、服务鉴权、服务限流、服务熔断、服务容错、服务监控、分布式配置功能。
网关:向工程中添加spring-cloud-tsf-msgw-scg依赖。
<dependency>
<groupId>com.tencent.tsf</groupId>
<artifactId>spring-cloud-tsf-msgw-scg</artifactId>
</dependency>
注意
TSF Spring Cloud 2020 开始不再支持 zuul1 网关。
2. 向 Application 类中添加注解@EnableTsf
// 下面省略了无关的代码
import org.springframework.tsf.annotation.EnableTsf;
@SpringBootApplication
@EnableTsf
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
注意
Spring Cloud Finchley/Greenwich/Hoxton 支持 @EnableTsfAuth 等注解的单独使用,仅开启部分功能,Spring Cloud 2020 不再支持,添加依赖后即支持全部 SDK 功能。
3. 配置日志 pattern。Spring Cloud 2020(Spring Boot 2.4)开始,日志格式有所变化。如果需要用日志配置项中的 Spring Boot 格式采集日志,需要对 pattern 进行以下设置。如果采集格式使用自定义 logback 格式/自定义 log4j2 格式或其他自定义规则格式,也需要参考该 pattern 进行对应的调整。
3.1 无 xml 日志配置文件,输出格式使用 logging.pattern.level 配置进行设置:
logging:
pattern:
level: "%-5level [${spring.application.name},%mdc{trace_id},%mdc{span_id},]"
3.2 输出格式使用 logback.xml 配置。 logback.xml 中的 pattern 需要进行以下配置,其中 %X{trace_id} 表示调用链 trace id 的占位符,%X{span_id} 表示调用链 span id 的占位符。
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [${spring.application.name},%X{trace_id},%X{span_id},] ${PID} --- [%thread] %logger : %msg%n
3.3 输出格式使用 log4j2.xml 配置。 log4j2.xml 中的 pattern 需要进行以下配置,其中 %X{trace_id} 表示调用链 trace id 的占位符,%X{span_id} 表示调用链 span id 的占位符。
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [${spring:spring.application.name},%X{trace_id},%X{span_id},] %pid --- [%thread] %logger : %msg%n
3.4 输出格式使用其他方式:参考以上 logback 和 log4j2 配置调整 pattern。
4. 配置可观测 Agent。Spring Cloud 2020(Spring Boot 2.4)开始,TSF 采用可观测 Agent 生成调用链、监控信息。需要进行以下配置:
虚拟机:部署时展开高级选项,勾选“Agent 配置”中的“可观测 Agent”。
容器(通过 TSF 控制台制作的镜像)部署时展开高级选项,勾选“Agent 配置”中的“可观测 Agent”。


容器(手动制作的镜像):Dockerfile 中添加 ot-agent-release.tar ,并通过 VM options 配置启动参数:
-javaagent:ot-agent-release/opentelemetry-javaagent.jar -Dotel.javaagent.extensions=ot-agent-release/femas-trace-opentelemetry.jar -Dotel.traces.exporter=none