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

在这个配置文件中包括以下配置:

  1. 数据库配置
  2. redis配置
  3. rocketmq 配置
  4. 数据源监控密码配置
  5. 发送邮件参数配置

我们需要根据实际情况进行配置。

如下所示,修改里面的数据库连接等信息:

# 数据库配置

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 地址即可。

文档更新时间: 2021-07-03 18:54   作者:zyg