本文档旨在指导开发人员如何通过脚手架的快速搭建 Spring Cloud 工程。
本脚手架基于 Yeoman 实现了一套 CLI 交互,方便用户进行简单的选项填写即可快速搭建 Spring Cloud 工程。 脚手架的代码完全开源。
脚手架开源代码地址:https://github.com/alauda/generator-asf
脚手架镜像地址:docker.io/dwgao/generator-asf
脚手架当前只支持在 Linux 下运行,文档中的命令均为 CentOS 7.7 下的执行命令,如运行环境未其他 Linux 操作系统,需要用户使用适配对应操作系统运行环境的命令。
通过运行脚手架创建工程之前需要准备环境,安装脚手架依赖的软件。
脚手架的运行环境支持 docker 和非 docker ( npm 安装后直接运行)。
-
安装 docker,版本要求:docker>=1.13.1 。
yum install docker
-
拉取镜像,镜像 tag 建议选择最新的 Release 版本。
docker pull docker.io/dwgao/generator-asf:<tag>
-
安装 node.js 和 npm
版本要求: nodejs>=12.14.0 ;npm>=6.13.4
安装 node.js 时会带上 npm,此处注意 yum 安装的 node.js 版本过老,不支持脚手架安装。
node.js 安装方法:
官网获取 node.js 软件包
wget https://nodejs.org/dist/v12.14.0/node-v12.14.0-linux-x64.tar.xz
软链接全局替换
ln -s <软件所在目录>/node-v12.14.0-linux-x64/bin/node /usr/bin/node ln -s <软件所在目录>/node-v12.14.0-linux-x64/bin/npm /usr/bin/npm
-
安装 Yeoman,版本要求: yo>=3.1.1 。
npm install -g yo
-
安装脚手架(generator-asf)
npm install -g generator-asf
脚手架可以创建两种应用工程,一种是常规的 Spring Cloud 微服务业务应用,另一种是基于 Spring Cloud Gateway 的微服务网关应用。
业务应用能力覆盖:熔断降级、限流、注册中心、配置中心、调用链跟踪、消息队列。
网关应用能力覆盖:熔断降级、限流、注册中心、配置中心、调用链跟踪。
工程的创建方式有两种:
- 通过 CLI 交互进行工程创建
- 通过模板进行工程创建 使用模板创建之前需要检查模板的配置是否符合工程需求,如不符合需要自行调配模板。
创建方式 | 应用类型 | 非 docker 运行 | docker 运行 |
---|---|---|---|
CLI 交互 | 业务应用 | asf create-service |
docker run --rm -it -v <工程父目录>:/yo <镜像地址>:<镜像 tag> asf create-service 说明:在挂载到容器的工程父目录下创建工程 |
CLI 交互 | 网关应用 | asf create-gateway |
docker run --rm -it -v <工程父目录>:/yo <镜像地址>:<镜像 tag> asf create-gateway 说明:在挂载到容器的工程父目录下创建工程 |
模板创建 | 业务应用 | asf create-service -c <模板文件路径> 说明:在命令执行的当前目录下创建工程 |
docker run --rm -it -v <模板文件所在目录路径>:/conf -v <工程父目录>:/yo <镜像地址>:<镜像 tag> asf create-service -c /conf/<模板文件名称> 说明:模板文件所在目录路径不包含模板文件,在挂载到容器的工程父目录下创建工程 |
模板创建 | 网关应用 | asf create-gateway -c <模板文件路径> 说明:在命令执行的当前目录下创建工程 |
docker run --rm -it -v <模板文件所在目录路径>:/conf -v <工程父目录>:/yo <镜像地址>:<镜像 tag> asf create-gateway -c /conf/<模板文件名称> 说明:模板文件所在目录路径不包含模板文件,在挂载到容器的工程父目录下创建工程 |
小技巧:上述命令中 create-service 和 create-gateway 均支持别名,分别为 cs 和 cg 。
注意:
模板创建命令会检测模板文件路径下是否存在命令中的模板文件。如不存在,脚手架将会执行 CLI 交互,并在交互操作完成后创建工程且生成模板文件;如存在,脚手架将不会执行 CLI 交互,直接按照模板文件配置创建工程。 脚手架执行工程创建时,若工程父目录下存在同名工程,该工程将会被脚手架覆盖。
Apache-2.0 © gaodawei