1. 概要
因为平台是一个微服务架构系统,前后端分离设计,因此开发将平台运行起来的过程是有一些复杂的,下面就介绍以下如何将平台运行起来。
2. 代码包介绍
jpaas 项目
项目 | 说明 |
---|---|
jpaas-auth | 认证服务 |
jpaas-commons | 公共模块 |
jpaas-davinci | 大屏项目 |
jpaas-gateway | 网关模块 |
jpaas-job | 定时任务模块 |
jpaas-service | 微服务模块 |
jpaas-service 模块
项目 | 说明 |
---|---|
jpaas-portal | 门户模块 |
jpaas-share | 公共模块 |
jpaas-davinci | 大屏项目 |
jpaas-system | 系统配置模块 |
jpaas-user | 用户模块 |
jpaas-ureport | 报表模块 |
2. 运行环境
运行平台需要准备的环境为如下列表:
软件 | 说明 |
---|---|
nginx | 运行前端和代理后端请求 |
nacos | 配置和微服务注册中心 |
redis | 缓存系统 |
rocketmq | 消息队列服务 |
mysql | 数据库 |
seata | 分布式事务管理 |
nodejs | 运行前端(生产环境不需要) |
idea | 开发环境 |
在运行平台时,我们需要准备以上的环境。
2.1 初始化数据库
因为程序是微服务架构,因此我们数据库使用了多个库。
目前的数据主要有:
数据名 | 说明 |
---|---|
jpaas_user | 用户数据库 |
jpaas_bpm | 流程数据库 |
jpaas_form | 表单数据库 |
jpaas_portal | 门户数据库 |
jpaas_system | 系统配置数据库 |
jpaas_seata | seata 分布式数据库 |
jpaas_davinci | 大屏数据库 |
jpaas_job | 任务调度数据库 |
jpaas_ureport | Ureport数据库 |
需要执行脚本创建数据库。
2.2 配置NACOS
2.2.1 启动nacos
linux 下启动./startup.sh -m standalone
使用单实例的方式启动。
windows下启动
双击 startup.bat 方式启动。
2.2.2 创建名称空间
这里创建一个local的名称空间
导入配置
配置中心需要做相应的修改,修改的地方主要包括。
2.2.3 seata 配置
配置 | 说明 |
---|---|
store.mode | 存储模式,这里配置成 db |
store.db.url | seata数据库的地址,根据实际情况配置 |
store.db.user | 用户名 |
store.db.password | 密码 |
2.2.4 nacos-config-dev.properties
在这个配置文件中包括以下配置:
- 数据库配置
- redis配置
- rocketmq 配置
- 数据源监控密码配置
- 发送邮件参数配置
我们需要根据实际情况进行配置。
如下所示,修改里面的数据库连接等信息:
# 数据库配置
bpm.datasource.url=jdbc:mysql://localhost:3306/jpaas_bpm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
form.datasource.url=jdbc:mysql://localhost:3306/jpaas_form?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
portal.datasource.url=jdbc:mysql://localhost:3306/jpaas_portal?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
system.datasource.url=jdbc:mysql://localhost:3306/jpaas_system?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
user.datasource.url=jdbc:mysql://localhost:3306/jpaas_user?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8
ureport.datasource.url=jdbc:mysql://localhost:3306/jpaas_ureport?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
# bpm
bpm.datasource.username=root
bpm.datasource.password=root
bpm.datasource.driver=com.mysql.cj.jdbc.Driver
bpm.datasource.connection=
bpm.datasource.vaildQuery=select 1
# form
form.datasource.username=root
form.datasource.password=root
form.datasource.driver=com.mysql.cj.jdbc.Driver
form.datasource.connection=
form.datasource.vaildQuery=select 1
# portal
portal.datasource.username=root
portal.datasource.password=root
portal.datasource.driver=com.mysql.cj.jdbc.Driver
portal.datasource.connection=
portal.datasource.vaildQuery=select 1
# system
system.datasource.username=root
system.datasource.password=root
system.datasource.driver=com.mysql.cj.jdbc.Driver
system.datasource.connection=null
system.datasource.connection=
system.datasource.vaildQuery=select 1
# user
user.datasource.username=root
user.datasource.password=root
user.datasource.driver=com.mysql.cj.jdbc.Driver
user.datasource.connection=
user.datasource.vaildQuery=select 1
# ureport
ureport.datasource.username=root
ureport.datasource.password=root
ureport.datasource.driver=com.mysql.cj.jdbc.Driver
ureport.datasource.connection=
ureport.datasource.vaildQuery=select 1
# job
job.datasource.url= jdbc:mysql://localhost:3306/jpaas_job?Unicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=UTC
job.datasource.username=root
job.datasource.password=root
job.datasource.driver=com.mysql.cj.jdbc.Driver
job.datasource.vaildQuery=select 1
# redis 配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.timeout=5000
spring.redis.password=
spring.redis.database=10
# rocketmq
spring.cloud.stream.rocketmq.binder.name-server=127.0.0.1:9876
# rabbit mq的配置
# spring.cloud.stream.binders.local_rabbit.type= rabbit
# spring.cloud.stream.binders.local_rabbit.environment.spring.rabbitmq.host=192.168.1.107
# spring.cloud.stream.binders.local_rabbit.environment.spring.rabbitmq.port=5672
# spring.cloud.stream.binders.local_rabbit.environment.spring.rabbitmq.username=admin
# spring.cloud.stream.binders.local_rabbit.environment.spring.rabbitmq.password=admin
# spring.cloud.stream.binders.local_rabbit.environment.spring.rabbitmq.virtual-host= /
druid.account=admin
druid.password=admin
# 缓存机制为内存。可配置的值为 memory,j2cache
redxun.cache=j2cache
spring.mail.port=25
spring.mail.username=12345@qq.com
spring.mail.password=123
spring.mail.protocol=smtp
spring.mail.default-encoding=utf-8
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
2.2.5 j2cache-dev.properties
j2cache配置是缓存用的。
单节点配置
redis.mode =single
redis.hosts = localhost:6379
redis.password =redxun
哨兵配置
redis.mode =sentinel
redis.cluster_name = 配置为哨兵的master配置
# 节点配置为哨兵端口
redis.hosts = 192.168.1.10:16001,192.168.1.10:16002,192.168.1.10:16003
redis.password =redxun
这里我们主要修改这些,如果是生产环境可以参考。
http://doc.redxun.cn/docs/jpaas/cacheModule
2.3 配置IDEA
2.3.1 安装必要的插件
2.3.2 配置nacos环境变量
这里需要指定 nacos.address 指向正确的配置服务器和名称空间。
2.4 配置SEATA
SEATA 是微服务数据事务管理器,需要启动起来。
SEATA 软件服务包在 JPAAS项目中有提供。
这个我们是适配了达梦,KINGBASE等国产库的。
2.4.1 修改配置文件registry.conf
在seata 软件conf 目录下 有一个 registry.conf 文件。
我们需要编辑下这个文件:
registry {
# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "localhost:8848"
//名称空间和之前的相同,之前配置的是local
namespace = "local"
group = "DEFAULT_GROUP"
cluster = "default"
username = "nacos"
password = "nacos"
}
}
config {
# file、nacos 、apollo、zk、consul、etcd3
type = "nacos"
nacos {
serverAddr = "localhost:8848"
//名称空间和之前的相同,之前配置的是local
namespace = "local"
group = "SEATA_GROUP"
cluster = "default"
username = "nacos"
password = "nacos"
}
}
这里需要修改下 nacos 服务器的地址。
2.4.2 启动 seata server
seata-server.sh -h 127.0.0.1 -p 8091 -n 1
参数 | 说明 |
---|---|
-p | Server rpc 监听端口 |
-h | 注册到注册中心的ip,是当前服务器的IP地址 |
-n | Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突,如果只有一个 server 可以不指定 |
在启动seata-server 之前需要先启动 nacos server。
2.5 运行前端模块
后端的应用启动后,需要由前端的项目进行界面的交互展示,因此需要启动前端项目,在开发环境下启动前端的项目,请参考前端模块运行。
2.6 运行nginx
nginx作为统一前端与后端的各个应用的访问入口,可有效解决了跨域访问的问题,因此需要在本机启动Nginx服务,同时把nginx的config/nginx.conf文件修改如下:
server {
listen 80;
server_name localhost;
location /jpaas {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8002;
}
location /api/ {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:9900/;
}
location /form {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location /bpm-designer {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8087;
}
location /job {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:7878;
}
}
修改完以上配置文件,需要重新启动一下nginx.
重启完成后,直接在浏览器访问:
http://localhost:8080/jpaas 地址即可。