腾讯云微服务平台TSF对接使用完全指南:从零搭建生产级微服务架构

apphuang2026年06月24日 11:50:538

1. 腾讯云TSF平台概述与前置准备

腾讯云微服务平台(Tencent Service Framework,简称TSF)是一款面向企业级微服务架构的云原生PaaS平台。TSF提供应用全生命周期管理、服务注册发现、服务治理、分布式配置、微服务网关以及可观测性等一站式能力,帮助用户快速构建和运行API服务、Web服务等分布式应用。TSF支持虚拟机与容器两种部署方式,兼容Spring Cloud、Dubbo等主流微服务框架,并支持Service Mesh多语言应用接入。

在开始对接TSF之前,需要完成以下前置准备:

  • 拥有腾讯云账号并完成实名认证。
  • 使用主账号登录腾讯微服务平台控制台,首次进入时会提示授权TSF服务角色访问其他云产品资源(如CVM、TKE、CLS等),单击"前往授权"并同意授权即可。
  • 如果使用子账号操作,需要主账号在访问管理(CAM)中为子账号授予TSF相关操作权限。

需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联

2. 创建集群与命名空间

TSF中的集群是部署应用的资源集合,分为虚拟机集群和容器集群两种类型。在部署应用之前,需要先创建集群并将云主机或容器节点导入集群。

2.1 创建虚拟机集群

登录TSF控制台,在左侧导航栏选择"集群管理",单击"新建集群"。选择集群类型为"虚拟机集群",填写集群名称和集群描述,选择地域和私有网络VPC。创建完成后,在集群详情页单击"导入云主机",选择同一VPC下的CVM实例导入集群。

2.2 创建容器集群

选择集群类型为"容器集群"时,需要关联腾讯云容器服务TKE集群。TSF会自动发现同地域下的TKE集群,选择目标集群完成关联即可。

2.3 创建命名空间

命名空间用于逻辑隔离不同环境(如开发、测试、生产)的应用和服务。在TSF控制台左侧导航栏单击"命名空间",单击"新建命名空间",选择注册配置中心类型(共享或独占),填写命名空间名称后提交。

3. 创建应用

应用是TSF中管理微服务的基本单位。TSF支持多种应用类型:虚拟机应用(V)、容器应用(C)和Serverless应用(S)。微服务类型分为:普通应用(N)、Service Mesh应用(M)和网关应用(G)。

3.1 控制台创建应用

在TSF控制台左侧导航栏选择"应用管理" > "业务应用",单击"新建应用"。填写应用名称(最长60字符),选择部署方式(虚拟机部署或容器部署),选择开发语言(Java、Go、Python等)和开发框架(Spring Cloud、Dubbo等)。配置注册配置治理方式,可选择开启或关闭服务注册发现能力。

3.2 API方式创建应用

TSF提供完整的API接口,可通过调用CreateApplication接口创建应用。接口请求域名为tsf.tencentcloudapi.com,频率限制为20次/秒。关键请求参数包括:

{
  "ApplicationName": "application-user",     // 应用名称,最长60字符
  "ApplicationType": "C",                    // V:虚拟机 C:容器 S:Serverless
  "MicroserviceType": "N",                   // N:普通应用 M:Mesh G:网关
  "ApplicationDesc": "用户服务应用",
  "ApplicationRuntimeType": "Java 8",
  "ProgramLanguage": "Java",
  "FrameworkType": "SpringCloud"
}

返回结果中包含应用ID(如application-6a79x94v),后续操作需要用到该ID。

4. Spring Cloud应用接入TSF

TSF支持Spring Cloud原生应用零改造接入,这是最常用的接入方式。根据注册中心选型的不同,接入方式略有差异。

4.1 注册中心选型

TSF提供两种注册配置中心选型:

  • 共享注册配置中心(TSF-Consul):共享组件,自动实现租户隔离,节省部署和运维成本,与TSF其他组件紧密结合。
  • 独占注册配置中心(Polaris北极星):独占组件,资源隔离,故障隔离。Polaris是腾讯自研并开源的组件,在腾讯内部服务注册数量超过百万,日接口调用量超过十万亿。支持同城多活高可用架构。

对于新项目,推荐使用Polaris独占注册中心以获得更强的治理能力和稳定性保障。

4.2 接入共享注册中心(TSF-Consul)

在Spring Cloud应用的pom.xml中添加spring-cloud-tsf-starter依赖:

<dependency>
    <groupId>com.tencent.tsf</groupId>
    <artifactId>spring-cloud-tsf-starter</artifactId>
    <version>1.19.0-Finchley-RELEASE</version>
</dependency>

该starter中包含了服务注册发现、服务路由、服务鉴权、服务限流、服务熔断、服务容错、服务监控、分布式配置和调用链等全部功能。

在Application类中添加@EnableTsf注解开启TSF功能:

@SpringBootApplication
@EnableTsf
public class ProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}

配置完成后,将应用打包部署到TSF集群,应用启动时会自动向TSF注册中心注册服务。

4.3 接入独占注册中心(Polaris)

接入Polaris需要使用Spring Cloud Tencent组件。在pom.xml的dependencyManagement中添加:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.tencent.cloud</groupId>
            <artifactId>spring-cloud-tencent-dependencies</artifactId>
            <version>2.1.0.0-2024.0.1-RC1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

然后引入starter依赖:

<dependency>
    <groupId>com.tencent.cloud</groupId>
    <artifactId>spring-cloud-starter-tencent-all</artifactId>
</dependency>

在Polaris控制台获取注册中心实例访问IP,通过-D参数指定注册中心地址启动应用:

nohup java -Dspring.cloud.polaris.server-addr=[实例IP:8091] -jar app.jar &

4.4 Java Agent无侵入接入

对于不想修改代码的存量Spring Cloud应用,TSF提供了Java Agent无侵入接入方案。Java Agent是JVM级别的AOP技术,无需对原有应用做任何修改即可实现动态增强。目前支持Spring Cloud 2020版本使用Java Agent接入。

在TSF控制台创建应用时,接入方式选择"无侵入接入"(通过字节码注入),部署时勾选"服务Agent"和"可观测Agent"即可获得完整的服务注册发现、服务治理和应用性能监控能力。

5. 服务注册与发现

服务注册与发现是微服务架构的核心能力。应用接入TSF后,启动时会自动向注册中心注册自身信息(服务名、IP、端口等),其他服务通过服务名调用时,TSF会从注册中心获取健康的服务实例列表。

5.1 服务调用示例

在Spring Cloud中,通过RestTemplate或Feign发起服务调用。使用RestTemplate时,在实例化方法上添加@LoadBalanced注解:

@Bean
@LoadBalanced
public RestTemplate restTemplate() {
    return new RestTemplate();
}

调用时直接使用服务名代替IP地址:

@RestController
public class ConsumerController {
    @Autowired
    private RestTemplate restTemplate;
    
    @RequestMapping("/echo/{str}")
    public String echo(@PathVariable String str) {
        return restTemplate.getForObject(
            "http://provider-demo/echo/" + str, 
            String.class
        );
    }
}

5.2 服务健康检查

TSF注册中心会定期对服务实例进行健康检查,不健康的实例会被自动剔除,保证服务调用的可靠性。在TSF控制台的"服务治理"页面可以查看所有注册服务的健康状态、实例列表和调用统计。

6. 分布式配置管理

TSF提供分布式配置管理能力,支持动态更新应用配置文件(如application.yml)中的配置,无需重启应用即可生效。

6.1 配置类型

TSF配置管理支持三种配置类型:

  • 应用配置:关联到具体应用,应用部署组可以继承使用。
  • 全局配置:不关联特定应用,可供多个应用共享使用。
  • 文件配置:支持以文件形式管理配置内容。

6.2 配置使用方式

在Spring Cloud应用中,可通过两种方式读取配置:

  • 使用@Value注解:适用于配置较少的场景。
  • 使用@ConfigurationProperties注解:适用于配置较多的场景。

6.3 配置动态更新与回调

TSF支持配置更新触发回调功能,当配置发生变化时自动调用回调方法,程序可以在不重启的情况下动态修改业务逻辑。配置内容支持YAML格式编辑。在控制台的"配置管理"页面创建配置后,将其发布到目标部署组即可生效。

7. 微服务网关

微服务网关是微服务架构的统一流量入口,负责请求路由、转发、鉴权、限流等。TSF提供白屏化的微服务网关管理能力,支持Java网关和云原生网关两种类型。

7.1 创建微服务网关应用

在TSF控制台创建应用时,业务类型选择"微服务网关应用"。部署后,在"组件中心" > "微服务网关" > "网关管理"中管理网关实例。

7.2 路由配置

网关路由支持多种匹配属性:

  • 主机名(Host):支持精确匹配和通配符匹配(如*.example.com)。
  • 请求路径(Path):支持前缀匹配和正则匹配。
  • 请求头(Header):根据自定义请求头进行路由。
  • HTTP方法:根据GET、POST等方法匹配。

在TSF控制台"路由管理"页面,选择目标网关实例后单击"服务"页签,进入服务路由管理页面配置路由规则。

7.3 Tag插件与业务参数路由

Tag插件是TSF微服务网关的重要扩展能力,可将外部请求参数(Path、Query、Header、Cookie)转化为TSF标签,实现基于业务参数的灵活路由、鉴权和限流。

创建Tag插件步骤:在TSF控制台选择"应用管理" > "中间件应用" > "网关插件",单击"新建插件",插件类型选择Tag,配置参数位置和参数名。例如将Header中的region参数转换为标签,转换后标签名为region。创建完成后将插件绑定到网关分组或API上即可生效。

配置服务路由规则时,可基于标签值进行流量分配。例如当region=cityA时,100%流量路由到版本1;当region=cityB时,100%流量路由到版本2。标签还可以与服务鉴权、服务限流、调用链进行联动。

8. 服务治理

TSF提供丰富的服务治理能力,包括服务鉴权、服务限流、服务路由和服务熔断。

8.1 服务鉴权

服务鉴权用于控制服务间的调用权限。在主调方和被调方都添加spring-cloud-tsf-starter依赖并开启@EnableTsf注解后,即可在控制台配置鉴权规则。

在主调方代码中设置标签:

import org.springframework.tsf.core.TsfContext;

// 设置单个标签
TsfContext.putTag("user", "admin");

// 设置多个标签
Map<String, String> tags = new HashMap<>();
tags.put("region", "cityA");
tags.put("userType", "vip");
TsfContext.putTags(tags);

在TSF控制台"服务治理"页面选择目标服务,配置鉴权规则,可以基于标签组合进行精确的权限控制。鉴权不通过时返回HTTP 403 Forbidden。

8.2 服务限流

服务限流通过监控服务流量的QPS指标,在达到指定阈值时进行流量控制,避免被瞬时高峰流量冲垮。TSF目前支持在被调服务上设置限流规则。在TSF控制台"服务治理"页面选择目标服务,在"服务限流"标签页配置限流规则。

8.3 服务路由

服务路由支持基于标签的流量路由,可实现灰度发布、金丝雀发布等场景。路由规则在被调用方配置。在TSF控制台"服务治理"页面选择目标服务,进入"服务路由"页面,单击"新建路由规则"配置基于标签的流量分配策略。

8.4 服务熔断

服务熔断当下游服务不可用或响应过慢时,上游服务不再继续调用目标服务,直接返回,避免级联故障。TSF支持服务、实例、API三种隔离级别的熔断规则:

  • 服务级别:熔断下游目标服务的所有实例的所有API。
  • 实例级别:仅熔断达到触发条件的单个实例。
  • API级别:仅熔断指定API。

熔断器状态转换:

  • closed:关闭状态,正常调用。检测到错误达到阈值后转为open。
  • open:开启状态,不再调用下游服务。
  • half open:半开状态,尝试放行部分请求,成功则回到closed,失败则回到open。

熔断规则在主调方服务上设置。在TSF控制台"服务治理"页面选择主调方服务,切换至"服务熔断"标签页,单击"新建熔断规则"。配置参数包括:

  • 下游服务:选择目标服务。
  • 隔离级别:服务/实例/API。
  • 滑动时间窗口:统计请求结果的时间窗口。
  • 最少请求次数:计算错误率之前的最小请求数。
  • 失败请求率:触发熔断的失败请求比率阈值。
  • 慢请求率:触发熔断的慢请求比率阈值。
  • 开启到半开间隔:从open到half open的等待时间。

注意:服务熔断功能需要使用1.19.0及以上版本的SDK。

9. 可观测性:调用链、日志与监控

TSF提供多维度的可观测能力,包括分布式调用链追踪、日志服务和监控告警。

9.1 分布式调用链

TSF支持Spring Cloud Sleuth和Zipkin组件接入调用链,可以清晰地展示从用户发起请求开始,经过各个微服务的调用路径、顺序以及每个环节的耗时。TSF提供符合国人习惯的交互方式,并与日志服务联动。调用链支持按标签进行检索过滤。

9.2 日志服务

TSF日志配置项用于指定采集日志的规则,包括日志的采集路径和日志解析格式。在TSF控制台创建日志配置项后,将其发布到部署组上,同一个部署组可以关联多个日志配置项。TSF提供实时日志收集和聚合、多维度日志查询与筛选等能力。

9.3 监控告警

TSF提供细粒度的监控指标,精细到JVM监控级别。监控维度包括应用、微服务、实例等多个层次。告警功能通过与腾讯云可观测平台联动实现。在TSF控制台"日志告警"页面配置告警统计后,跳转至可观测平台配置告警策略。

10. 权限管理与安全

TSF通过访问管理(CAM)实现精细化的权限控制。

10.1 主账号授权

首次使用TSF时,主账号需要授权TSF服务角色访问其他云产品资源(VPC、CVM、TKE、CLS等)。在TSF控制台概览页单击"前往授权",在CAM控制台同意授权即可。

10.2 子账号授权

子账号使用TSF时,需要主账号授予相关权限。在CAM控制台"用户列表"中选择目标用户,单击"授权",关联TSF相关策略。如果子账号需要调用其他云产品接口,建议授予tsf_PassRole策略。

TSF支持为不同子账号灵活配置管理权限,包含对TSF中不同集群、命名空间、应用授予读权限或写权限。在TSF控制台"权限管理" > "角色管理"中可以进行策略配置。

10.3 数据集权限

数据集是TSF中用于精细化权限管理的功能,可以通过数据集管理配置不同的子账号使用不同资源的权限。创建应用时可以指定数据集ID。

11. 常见问题与排障

11.1 服务注册失败排查

如果服务部署成功但注册中心没有显示服务,可以按以下步骤排查:

  1. 检查云服务器状态是否为"运行中"。
  2. 登录云服务器执行 ps aux | grep 'agent' 查看tsf-agent进程是否存在。
  3. 检查应用是否正确添加了TSF依赖和@EnableTsf注解。
  4. 检查注册中心地址配置是否正确。

11.2 部署失败排查

部署失败时可以检查程序包版本、查看部署日志等方式排查。如果提示资源不足但实际资源充足,可能是集群资源配额或网络配置问题。

11.3 鉴权相关错误

遇到AuthFailure类错误时:

  • 检查SecretId和SecretKey是否正确,注意前后不得有空格。
  • 检查密钥是否已被删除或禁用。
  • 检查请求头部的Authorization是否符合腾讯云标准。

12. 最佳实践建议

  • 注册中心选型:生产环境推荐使用Polaris独占注册中心,获得更好的性能和稳定性保障。
  • 接入方式选择:新项目推荐使用Spring Cloud Tencent原生接入;存量应用推荐使用Java Agent无侵入接入。
  • 配置管理:将环境相关的配置(如数据库连接、Redis地址)放在TSF配置中心,实现环境隔离和动态调整。
  • 服务治理:为核心服务配置合理的限流和熔断规则,防止级联故障。
  • 可观测性:为关键业务接口配置调用链标签,便于问题定位和性能分析。
  • 权限管理:遵循最小权限原则,为不同角色配置不同的资源访问权限。

常见问题问答

问1:TSF支持哪些微服务框架?

答:TSF支持Spring Cloud和Dubbo应用,兼容HTTP、gRPC、Dubbo等常见RPC协议,并支持Service Mesh多语言应用接入。

问2:TSF的Java Agent接入方式有什么优势?

答:Java Agent接入方式无需对原有应用做任何代码修改,通过JVM级别的字节码增强实现无侵入接入,特别适合存量应用的微服务化改造。

问3:TSF的共享注册中心和独占注册中心有什么区别?

答:共享注册中心(TSF-Consul)为多租户共享,节省成本;独占注册中心(Polaris)资源隔离、故障隔离,性能和稳定性更好。生产环境推荐使用Polaris。

问4:如何在TSF中实现灰度发布?

答:通过TSF的服务路由功能,基于标签配置流量分配规则,可以实现将特定比例的流量路由到新版本服务,从而完成灰度发布。

问5:TSF的配置管理支持动态更新吗?

答:支持。TSF配置管理支持配置动态更新,配置变更后会自动推送到应用,并触发回调方法,无需重启应用即可生效。

问6:子账号如何使用TSF?

答:子账号需要主账号在CAM中授予TSF相关操作权限,建议授予tsf_PassRole策略。TSF支持为不同子账号配置不同集群、命名空间和应用的读写权限。

相关文章

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

最近后台总收到小伙伴私信:“腾讯云服务器看着挺好,但价格有点顶,学生党 / 小团队实在买不起咋办?” 别急!今天就来手把手教你 “花小钱办大事”,不光有省钱攻略,还会扒一扒大家最关心的安全问题,看完这…

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

Lately, I’ve been getting a lot of questions from friends: “Does Tencent offer rebates? Can you…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

一、腾讯云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异腾讯云按规模、服务能力与合作深度,构建了从基础到顶级的五级代理体系,各级权益呈现显著阶梯差:•标准级代理:入门门槛最低,仅能提供基…

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

2026年腾讯云代理深度解析:从折扣体系到最优合作策略

上海汪远信息科技有限公司作为腾讯云全国级殿堂级代理,凭借13年云服务经验与深厚的官方合作关系,为企业提供全方位的上云支持,可百度:上海汪远信息科技有限公司,微信:791201210一、腾讯云代理体系全…