微服务平台 TSF 制作应用程序包

这篇说说腾讯云微服务平台TSF的应用部署流程,说明支持jar、war、tar.gz、zip四种程序包格式,其中jar包部署的Spring Cloud微服务可获完整服务治理能力,并详细讲解FatJar打包方法及start.sh、stop.sh、cmdline脚本的编写规范。 程序包格式:jar/war包由agent用java -jar启动,tar.gz/zip包需包含start.sh、stop.sh、cmdline三个。

相关产品
微服务平台 TSF 产品页,含版本规格、价格与购买入口。

应用开发联调完成后,需要将应用工程进行打包,部署到 TSF 中。

注意:当部署 Spring Cloud 类型的微服务时,当前只有 jar 包部署的微服务支持完整的服务注册发现、完整的服务监控、调用链和服务治理能力。

目前使用云服务器部署的应用支持的程序包格式包括 jar、war、tar.gz 和 zip。

·jar: FatJar 格式的程序包,FatJar 是一种可执行的 Jar 包(Executable Jar)。FatJar 和普通的 Jar 不同在于它包含了依赖的 Jar 包。用户可以参见 如何打 FatJar 包。

·war: war 格式的程序包,在部署 war 包时,TSF 会自动安装 Tomcat 环境。示例 demo 下载 ,示例 demo 部署成功后,使用 http://<IP>:8080/provider-demo/echo/test 访问,其中 IP 可以是实例的外网 IP。

·tar.gz 、zip : 压缩包中必须包含三个文件,确保文件名正确:

·start.sh:启动脚本。

·stop.sh:停止脚本。

·cmdline:用于检查应用进程是否存在,没有.sh后缀。

文件类型 启动方式
war 云服务器上的 agent 会使用java -jar命令启动程序。
jar 云服务器上的 agent 会使用java -jar命令启动程序。
tar.gz 云服务器上的 agent 会解压压缩包,使用解压目录下的start.sh脚本启动应用程序。
zip 云服务器上的 agent 会解压压缩包,使用解压目录下的start.sh脚本启动应用程序。

一、如何打 FatJar 包

1. 在工程的 pom.xml 文件中添加插件:

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>

2. 添加完插件后,在 pom.xml 所在目录,使用 maven 命令 mvn clean package 即可下载 TSF SDK 并将应用工程进行打包,在 target 目录下找到打包好的 FatJar 文件。

注意:如果无法下载相关依赖,请检查网络是否有防火墙限制。

二、start.sh / stop.sh / cmdline 说明

以一个 Python 应用的压缩包为示例,解压后的文件目录如下:

·promotionService.py

·start.sh

·stop.sh

·cmdline

start.sh 启动脚本内容如下:

#! /bin/bashalready_run=`ps -ef|grep "python promotion"|grep -v grep|wc -l`if [ ${already_run} -ne 0 ];then echo "promotionService already Running!!!! Stop it first" exit -1finohup python promotionService.py 8093 &

stop.sh 停止脚本内容如下:

#!/bin/bashpid=`ps -ef|grep "python promotion"|grep -v grep|awk '{print $2}'`kill -SIGTERM $pidecho "process ${pid} killed"

cmdline 检测进程脚本,agent 通过ps -ef | grep 'cmdline 内容'来检测进程是否存在,示例如下:

python promotion

三、cmdline 更多说明

如果启动应用是 Java 应用,启动脚本中通过java -jar xxx.jar来启动应用。在 cmdline 文件中使用完整的 Java 启动命令。例如启动脚本中包含如下启动命令:

java -Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar consumer-demo-0.0.1-SNAPSHOT.jar

那么在 cmdline 中内容为:

java -Xms128m -Xmx512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar consumer-demo-0.0.1-SNAPSHOT.jar

当应用启动后,agent 会在服务器上执行ps -ef | grep 'cmdline 内容'来检查进程是否存在。


注意:如果没有 cmdline 文件或者 cmdline 文件内容不正确,在控制台上部署组的状态会显示为 "已停止",即使此时服务器上的应用已经运行起来(但是 TSF agent 无法获取应用进程状态)。

四、MacOS 系统压缩软件说明

对于 MacOS 系统的用户,使用系统自带压缩软件时,会在压缩包里面生成__MACOSX的临时目录,从而导致 agent 无法找到启停脚本。用户可以 下载 Keka 压缩软件,选择 zip 压缩格式,勾选排除 Mac 资源文件选项。将文件拖拽到 keka 界面上进行压缩,这种方式生成的压缩包没有__MACOSX的临时目录。


五、后续操作

应用打包完成后,你可以将应用程序包上传至 TSF 控制台进行应用部署,详情请参见 虚拟机托管应用。

赞 (0)
上一篇 4天前
下一篇 4天前