操作场景
为了帮助您快速体验如何在 TSF 中部署微服务应用,TSF 提供了一对应用 Demo,包含一个 provider 应用和一个 consumer 应用。本文以一个示例介绍如何在容器环境中部署 Spring Cloud 原生应用,并实现简单的服务调用。
前提条件
已参见 快速创建一个容器集群 创建好一个容器集群并导入可用的云主机。
已下载并解压 应用 Demo。
操作步骤
步骤1:新建应用
1. 登录 腾讯微服务平台控制台。
2. 在左侧导航栏,单击应用管理,确认所选地域后,选择业务应用,进入应用列表页。
3. 在应用列表上方单击新建。
4. 设置应用基本信息。

应用名:填写应用名,创建后名称不可修改。示例: consul-provider。
部署方式:选择 容器部署。
应用类型:默认业务应用。
开发语言:选择 JAVA。
开发框架:选择 SpringCloud。
标签:用于分类管理资源,可不选。详情管理方法可参见 标签管理。
备注:选填,可留空。
数据集:非必选。您可以通过数据集管理配置不同的子账号和协作者使用不同资源的权限,详情管理方法可参见 数据集管理。
5. 单击下一步,配置注册配置治理方式。
注册配置治理:开启。关闭后,表示该应用不接入注册配置治理中心,不会进行服务注册和配置管理。
实例类别:选择共享实例(TSF-Consul)。
接入方式:选择 Mesh 接入。
实现方式:选择原生应用。

6. 单击完成。
步骤2:上传镜像
1. 单击 步骤1 所创建应用的应用 ID,进入应用详情页,在制品卡片,单击上传程序包/镜像。

2. 在个人仓库上传程序包页面,上传程序包。
文件上传方式:选择 JAR包部署。
JDK 版本:选择使用的 JDK 版本。
上传程序包:单击选择文件,选择提前准备好的 Demo 中的
consul-provider-0.1.1-SNAPSHOT
的 jar 程序包。程序包版本:填写版本号,或单击用时间戳作为版本号。
3. 单击上传程序包并制作镜像,我们将自动为您制作镜像并上传到镜像仓库,右上角将出现任务进行的状态。
4. 任务完成后,在镜像制品标签页的镜像列表中将看到上传好的镜像。

步骤3:部署应用
1. 在业务应用列表中,单击在 步骤1:新建应用 中创建的应用的 “ID”。
2. 选择应用部署 > 部署组,单击应用部署,设置部署组相关信息。
集群:选择提前创建好的集群。
命名空间:选择集群关联的默认命名空间。
部署组名称:填写 provider。
标签:用于分类管理资源,可不选。详情参见 标签。
备注:选填,可留空。
3. 单击下一步,进入部署配置页面。
4. 设置容器配置信息。

容器类型:选择 Deployment。
容器配置:
镜像仓库类型:选择个人仓库。
选择镜像:选择 步骤2:上传镜像 中推送到镜像仓库的镜像版本。
资源配置:应用容器的 CPU 和内存限制使用默认值即可。
环境变量:设置容器中的变量。
JAVA_OPT:设置 Java 应用的启动参数。
agent容器:默认勾选,用于采集日志,调用链,JVM 监控和弹性伸缩监控数据。
实例数量:使用默认值1个。
访问配置: 单击添加Service,按以下方法配置完成后单击确定,完成 Service 配置。
访问方式:访问方式决定了部署组内应用的网络属性,不同访问方式的应用可以提供不同网络能力。此处设置主机端口访问。
外部流量策略:此处设置为 Local。
端口组:添加端口组,选择 TCP 协议,容器端口和服务端口设置为8002,设置端口组名称。
Session Affinity:此处设置为 None。

5. 单击下一步,进行发布策略确认。发布方式选择立即部署。
6. 单击下一步,进行服务注册配置和可观测确认。
7. 单击发布,进行应用部署。
8. 应用部署成功后,重新进入主页单击应用管理, 单击对应的应用 ID,进入应用详情页,单击左侧导航栏的应用部署 > 部署组,查看运行中/预期服务实例数的数值发生变化。
9. 前往 TSF Consul 菜单,在服务治理页签,选择地域和应用关联的命名空间后,可以看到服务实例显示在线状态,表示服务注册成功。

10. 在服务列表页单击服务的“ID”,进入服务详情页,单击接口列表标签页,可以查看上报的 API 定义。
步骤4:验证服务调用
重复步骤1到步骤3,部署 consumer 服务。
说明:
部署 consumer 应用时,上传程序包需选择 consul-consumer-0.1.1-SNAPSHOT.jar 进行部署,容器端口和服务端口需设置为8001。

请求 consumer 来调用 provider
1. 前往应用管理,选择地域,选择容器集群。
2. 单击目标应用 ID,选择 应用部署页签,进入部署组列表,单击 consumer 部署组的“ID”,进入服务实例列表页面。
3. 在访问配置页签,查看 consumer 应用对应的主机端口(NodePort)。
4. 前往 资源管理,选择地域。
5. 单击目标集群的ID,进入云主机列表页面,获取集群中任一云主机的IP地址,此处使用公网IP地址。


6. 单击云主机操作栏的登录,输入登录密码,登录云服务器。
7. 执行 curl 命令调用 consumer 服务,其中
<云主机 IP>
和 <NodePort>
为上述步骤获取的主机端口(NodePort)和云主机公网 IP。curl <云主机 IP>:<NodePort>/ping-provider
调用结果如下:

查看服务依赖拓扑图
1. 前往 TSF Consul, 选择地域,在服务治理页面,选择创建集群和命名空间后,可以看到 consul-provider 和 consul-consumer 服务的运行状况。服务状态为在线或单点在线,表示服务被代理注册成功。如果服务提供者的请求量大于0,请求错误率为0%,表示服务提供者被服务消费者请求成功。

2. 在服务治理页面,单击 consul-consumer 服务的“ID”,进入服务详情页面,可以看到两个服务的依赖关系。

上图两个服务的依赖关系表示:在选中时间范围内,consul-consumer 调用了 consul-provider 服务,调用成功比例为 100% (绿色部分)。