目录示例项目详情模块说明:部署环境说明:模块构建部署 Mysql部署 Redis部署 pig-ui依赖与端口梳理最终成果
示例项目详情
本文档以Pig 快速开发框架为例,演示如何在Rainbond上部署一套完整的Spring Cloud项目。
Pig Microservice Architecture V2.1.0:
基于 Spring Cloud Finchley 、Spring Security OAuth2 的RBAC权限管理系统
基于数据驱动视图的理念封装 Element-ui,即使没有 vue 的使用经验也能快速上手
提供对常见容器化支持 Docker、Kubernetes、Rancher2 支持
提供 lambda 、stream api 、webflux 的生产实践
模块说明:
pig
├── pig-ui — 前端工程[80]
├── pig-auth — 授权服务提供[3000]
└── pig-common — 系统公共模块
├── pig-common-core — 公共工具类核心包
├── pig-common-log — 日志服务
└── pig-common-security — 安全工具类
├── pig-config — 配置中心[8888]
├── pig-eureka — 服务注册与发现[8761]
├── pig-gateway — Spring Cloud Gateway网关[9999]
└── pig-upms — 通用用户权限管理模块
└── pigx-upms-api — 通用用户权限管理系统公共api模块
└── pigx-upms-biz — 通用用户权限管理系统业务处理模块[4000]
└── pigx-visual — 图形化模块
├── pigx-monitor — Spring Boot Admin监控 [5001]
└── pigx-codegen — 图形化代码生成[5003]
└── pigx-zipkin — 微服务链路跟踪[5002]
上述的模块,可以分为类库与服务两类,读者可以对比自己的Spring Cloud项目:
构建后产生jar包,用来实现各种功能的类的集合,即是类库,如Pig中的pig-common模块
构建后产生jar包或者war包,通过 java -jar 或者tomcat等方式启动,开放某个端口提供服务的,即是服务,如Pig中的pig-eureka模块
只需要将服务模块在Rainbond中构建出来即可。
经过梳理,该项目需要构建的服务组件包括:
启动顺序服务组件名称运行端口组件功能1pig-eureka8761spring cloud 服务发现注册与发现2pig-config8888spring cloud 配置中心3pig-gateway9999spring cloud 微服务网关4pig-auth3000授权服务提供5pig-upms-biz4000通用用户权限管理系统业务处理模块6pig-monitor5001Spring Boot Admin监控7pig-codegen5003图形化代码生成8pig-zipkin5002微服务链路跟踪9pig-ui80前端项目(vue项目)
部署环境说明:
部署pig,需要以下环境支持:
中间件或环境要求版本要求备注JDK1.8强制要求版本MySQL5.7 强制要求版本Redis3.2 强制要求版本node8.0 用于运行前端项目npm6.0 用于构建前端项目
模块构建
新建应用,并命名为 spring-cloud
获取项目克隆/下载地址: https://gitee.com/log4j/pig
以pig-eureka为例,演示从源码开始构建流程:
为 spring-cloud 添加服务组件 —— 从源码开始 —— 自定义仓库:
点击 新建服务,Rainbond会自动拉取代码,并根据代码根目录下的 pom.xml 自动将代码语言识别为 Java-maven。取消 并构建启动 选项:
点击 创建,进入服务组件未部署的页面。编辑 端口 选项卡,开放 pig-eureka 自身端口 8761:
pig-eureka 需要被其它微服务组件访问以进行注册,所以打开对内服务,以便之后创建依赖关系。该组件也提供web页面,显示微服务组件的注册情况与健康情况,所以打开对外服务,以便外部访问。
编辑 构建源 选项卡,指定 pig-eureka 构建参数:
由于 Pig 本身是一个多模块的项目,所以需要指定当前服务组件构建的模块。指定的方式是在 构建运行环境设置 中的 Maven构建全局参数:
clean dependency:list install -pl pig-eureka -am
上述的参数指定了普通的子模块构建方式,对于另一种子模块中的子模块,比如 pig-codegen 模块,参数指定的方式为:
clean dependency:list install -pl pig-visual/pig-codegen -am
在v5.1 版本的Rainbond中,可以指定当前服务组件的启动命令。指定的方式是在 构建运行环境设置 中的 启动命令:
web: java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/pig-eureka/target/*.jar
命令格式与 Procfile 一致。
编辑 依赖 选项卡,指定当前服务组件依赖其它服务组件:
各个服务组件之间的依赖关系,可以在创建时指定。所有的 spring cloud 微服务组件都需要依赖 pig-eureka,以 pig-gateway为例,应添加依赖关系如下:
所有的设置完成后,即可点击 构建 ,构建完成后,服务组件将自动运行起来。
将所有服务组件依次部署完成。
部署 Mysql
Pig 微服务项目需要部署 Mysql 5.7 作为数据源。并在代码仓库中提供了数据库初始化脚本:
https://gitee.com/log4j/pig/blob/master/db/pig.sql
为了能够在数据库启动时即加载初始化脚本,制作了一份 Dockerfile:
FROM percona:5.7.23-stretch
LABEL creater=”barnett”
ENV MYSQL_VERSION=5.7.23
ENV TZ=Asia/Shanghai
ADD docker-entrypoint.sh /run/docker-entrypoint.sh
ADD ./run/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
ADD ./run/mysqld.cnf /etc/mysql/percona-server.conf.d/mysqld.cnf
RUN fetchDeps=
ca-certificates
wget
;
sed -i s/deb.debian.org/mirrors.ustc.edu.cn/g /etc/apt/sources.list;
apt-get update;
apt-get install -y –no-install-recommends $fetchDeps;
rm -rf /var/lib/apt/lists/*;
wget -O /usr/local/bin/env2file -q https://github.com/barnettZQG/env2file/releases/download/v0.1/env2file-linux;
chmod x /run/docker-entrypoint.sh
暂无评论内容