运行时部署

1、部署运行时的意义

与设计时和各个引擎相互独立,相互不影响。避免一荣俱荣,一损俱损的单点故障问题。从设计时独立出来的运行时,在单独的服务器(容器)里面部署,具有以下特点:

xcreator平台提供了系列SAAS服务,这类公共服务还需要依赖设计时,包括以下服务

  • 独立的引擎数据库(不依赖平台的数据库),存储表单服务等元数据供引擎提供服务。
  • 独立的业务数据库,存储业务产生的数据。
  • 独立的文件存储,XCreator平台提供统一文件存储服务,文件存保存在本地的方式。
  • 独立的缓存redis数据库,用于缓存页面,服务等元信息,缓存用户信息,流程求解用户组织机构信息等。
  • 统一工作流服务(workflow)
  • 统一授权服务(uuap)
  • 中台业务服务(paas)
  • 文件服务
2、运行时更新逻辑

从开发环境往测试环境里面全量/增量打包,测试环境往生产环境的运行时里面全量/增量打包,生产运行时管理平台往注册的运行时下发更新命令,运行时收到命令后进行更新,并回写更新结果给运行时管理平台,管理平台可以维护运行时的运行状态;在整个更新的流程中都实现在线热部署更新。 其中XCreator运行时更新逻辑图如下所示:

3、运行时引擎部署
  • 部署xcreator-api,xcreator-web,即xcreator平台的引擎

  • 准备好运行时嵌入式数据库H2。(数据库放置在发布部署包的 /运行时/运行时数据库 文件夹里面)

    运行时为H2的嵌入式数据库,与设计时相同版本保持一致的数据库结构,只是没有数据,使用DBeaver数据库连接工具可以连接该数据库

    DBeaver连接H2

    (1)创建连接

    (2)改变数据库驱动连接信息

    为:jdbc:h2:{file};AUTO_SERVER=TRUE;SCHEMA=bingo_form;MODE=MySQL;TRACE_LEVEL_FILE=0;TRACE_LEVEL_SYSTEM_OUT=0

    (3)输入数据库用户名,密码

    用户名:xcreator

    密码:Xcreator@2021

  • 将设计时里面的sys_config 表里面和平台相关的配置,导入到运行时H2数据库中

  • 在运行时中添加如下环境变量,用于标识运行时的相关特性

变量 变量key 变量值 备注
H2驱动信息 form_jdbc_driverClassName org.h2.Driver 固定值
数据库信息 form_jdbc_url jdbc:h2:/attach/h2/xcreator.runtime;AUTO_SERVER=TRUE;SCHEMA=bingo_form;
MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE;MAX_COMPACT_COUNT=70;
根据实际情况修改h2文件路径
数据库用户名 form_jdbc_username xcreator 固定值
数据库密码 form_jdbc_secretKey Xcreator@2021 固定值
运行时工作目录 runtime-work-dir /runtime/file 建议配置在附件目录下
开启缓存 runtime-isDev TRUE 生产环境建议配置为true
是否运行时 xcreator-isRuntime TRUE 固定值
redis部署类型 redis-type sentinel 根据实际情况修改
redis密码 redis-password pass$word1 根据实际情况修改
哨兵名称 redis-masterName sentinel 根据实际情况修改
redis主机和端口 redis-hostAndPorts 10.32.244.129:26379; 根据实际情况修改
10.32.244.130:26379;
10.32.244.131:26379

 

4、运行时日常更新部署

  • 进入需要发布应用的运行时

  • 添加运行时信息

    应用:即需要发布的应用信息

    是否注册协同应用:因为所有的运行时都需要依赖协同开发平台,故一个运行时至少需要发布一个协同开发平台

    运行时名称:指定运行时的名称,建议命名为:xxx系统的运行时

    运行时地址:http://xxxx:8080/xcreator-api,根据实际情况修改域名和端口,用于设计时和运行时的通信,从而实现运行时的在线热部署

  • 测试与运行时的通信

    点击"测试运行时连接",可以测试设计时与运行时的通信是否成功,也可以辅助检查运行时的地址是否写错。如果通信成功,运行时的节点会上传信息到设计时管理端(如果有多个节点,每个节点都会上传日志)。

    运行时的每个条日志包含以下信息:

    运行时节点信息主机名称:[74fd39834f32]

    日志级别:[信息]

    日志产生时间:[2021-12-17 14:41:19.758 ]

    信息:接收到注册成功,并通知集群其他节点上报注册信息

  • 发布版本信息到运行时

    输入发布标签/版本号,运行时接收到更新版本命令后,会打包最新的包到运行时,并解压更新,如果更新失败会自动回滚到上个版本

  • 更新完毕后,点击“查看”可以追溯更新部署日志记录信息

    如果更新异常,请将上述日志信息反馈平台排除

  • 更新完毕后,使用运行时的访问域名打开应用即可完成部署,后续更新也如此