1.背景
用户已经有一个主服务应用,期望能将天舟云低代码直接集成到当前主服务应用当中,希望减少部署服务的数量和成本。因此需要将天舟云服务变成组件化的方式集成到业务系统服务当中,以实现集成低代码的能力。
2.天舟云服务说明
2.1 各服务说明
服务代号 | 服务名称 | 服务说明 |
---|---|---|
LCP-HUB | 租户应用平台 | 用于租户层级管理,包含:应用管理、数据源管理、事件定义管理等 |
LCP-APP | 应用管理服务 | 构建应用业务功能管理端服务,包含:表单管理、表单设计器、表单模型、属性联动等等 |
LCP-DATA | 多数据源数据服务 | 用于切换不同应用不同数据源提供数据CRUD服务 |
LCP-DATAVIEW | 图表功能服务 | 用于提供数据报表服务 |
CSB-LEGOX | 基础配置服务 | 基础配置功能服务,包含:菜单、用户角色、数据字典、附件、视图、流水号等 |
2.2 可集成部署服务说明
可以集成部署的服务目前有两个:LCP-HUB 和LCP-APP
2.2.1 示例
2.2.2 说明:
- 其中LCP-DATAVIEW是可以选配部署
- LCP-DATA由于存在多数据源切换,数据源对象是特殊的,与传统服务不兼容,建议独立服务
2.3 依赖外部组件说明
2.3.1 总体说明
- 是在spring boot版本2.5.3基础开发,可能会存在兼容问题
- 所有服务组件都有接入seata,以1.4.3-SNAPSHOT版本
- 组件zipkin未默认带入,服务化内置zipkin服务
- APP内置状态机
2.3.2 组件版本说明示例
<lcp.express.version>1.0-SNAPSHOT</lcp.express.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.cloud.version>2020.0.3</spring.cloud.version>
<asciidoctor.version>1.5.8</asciidoctor.version>
<maven.source.version>3.2.1</maven.source.version>
<lcp.base.version>1.7.0-SNAPSHOT</lcp.base.version>
<mybatis.version>3.5.7</mybatis.version>
<pagehelper.version>5.1.11</pagehelper.version>
<apollo.version>0.8.3-SNAPSHOT</apollo.version>
<csb.jwt.version>2.0.5</csb.jwt.version>
<csb.iac.version>1.1.6-SNAPSHOT</csb.iac.version>
<csb.version>3.0.2-SNAPSHOT</csb.version>
<swagger.version>3.0.0</swagger.version>
<oracle.ojdbc.version>11.2.0</oracle.ojdbc.version>
<cloud.seata.version>2.2.0.RELEASE</cloud.seata.version>
<seata.version>1.4.3-SNAPSHOT</seata.version>
<nacos.client.version>1.3.3</nacos.client.version>
<mysql.version>8.0.17</mysql.version>
<mybatis.spring.version>1.2.4</mybatis.spring.version>
<mapper.starter.version>2.0.3-beta1</mapper.starter.version>
<pagehelper.starter.version>1.2.5</pagehelper.starter.version>
<org.mapstruct.version>1.4.2.Final</org.mapstruct.version>
<csb.statemachine.version>1.3.2.PLUS-SNAPSHOT</csb.statemachine.version>
<csb.statemachine.todo.version>1.1.0-SNAPSHOT</csb.statemachine.todo.version>
<csb.workflow.version>1.0.6-SNAPSHOT</csb.workflow.version>
<csb.wfp.version>2.0.5-SNAPSHOT</csb.wfp.version>
<jakarta.validation.version>2.0.2</jakarta.validation.version>
<lcp.plugin.version>1.7.0-SNAPSHOT</lcp.plugin.version>
<event.plugin.version>1.3.2-SNAPSHOT</event.plugin.version>
<elasticsearch.version>7.17.1</elasticsearch.version>
<rabbitmq.version>2.5</rabbitmq.version>
<junit.version>4.13.2</junit.version>
<guava.version>24.1.1-jre</guava.version>
<autopoi.version>1.4.0</autopoi.version>
<mybatis.spring.version>1.3.1</mybatis.spring.version>
<csb.base.version>2.0.7</csb.base.version>
<fastjson.version>1.2.73</fastjson.version>
3.部署说明
集成各个服务的具体说明。可以参考服务化部署文档获取配置和脚本Java端部署文档V1.6.0
3.1 LCP-HUB集成
以组件的方式集成到主服务应用
3.1.1 maven依赖
以1.7.1-SNAPSHOT为例
<dependency>
<groupId>com.cvte.lcp</groupId>
<artifactId>lcp-hub-launcher</artifactId>
<version>1.7.1-SNAPSHOT</version>
</dependency>
3.1.2 Apollo配置
# -----------主应用如果已经有,则不用配置-----开始----------------
spring.application.name = lcp-hub
spring.datasource.type = com.zaxxer.hikari.HikariDataSource
spring.datasource.url = jdbc:postgresql://pgtest002.gz.cvte.cn:5432/*****?&ssl=false
spring.datasource.username = **p
spring.datasource.password = clp****
spring.datasource.driver-class-name = org.postgresql.Driver
spring.datasource.hikari.maximumPoolSize = 50
spring.datasource.hikari.minimumIdle = 10
spring.datasource.hikari.idleTimeout = 600000
spring.datasource.hikari.connectionTimeout = 30000
spring.datasource.hikari.maxLifetime = 1800000
spring.redis.host = redis-test003.gz.cvte.cn
spring.redis.port = 6379
spring.redis.password = ******
spring.redis.timeout = 20000
spring.redis.pool.max-active = 200
spring.redis.pool.max-idle = 10
spring.redis.pool.min-idle = 2
spring.redis.pool.max-wait = 20000
spring.redis.database = 0
eureka.client.serviceUrl.defaultZone = https://eureka-fat1.gz.cvte.cn/eureka/,https://eureka-fat2.gz.cvte.cn/eureka/
csb.iac.appId = 2a1fe9c4-4f65-419c-******-*****
csb.iac.appSecret = 836f4178-bbf6-****-905d-***
csb.iac.systemId = f03853eb-c694-***-854f-***
csb.iac.tenantId = c518f53d-b405-***-afe1-****
csb.database.encryptKey = x********oN@CV
# -----------主应用如果已经有,则不用配置-----结束----------------
service.csb.gw.url = https://csbtest-gw.gz.cvte.cn
lcp.core.url = https://lcptest.gz.cvte.cn/app
fass.aesKey = qras*****%456
view.database.encryptKey = x*****poNCVTE
sync.encryptePwd = sync
3.1.3 数据库脚本
全量数据库脚本:LCP-HUB脚本-坚果云
3.1.4 环境变量
JAVA_OPTS = -Denv=FAT
app.id = *****
# platform.lcpSeata,platform.zipkin为平台公共配置不用修改或者自己维护,platform.zipkin选配
apollo.app.namespaces = hub,platform.lcpSeata,platform.zipkin
# 请修改为自己的,如果存在则不用重复配置
seata.application-id = lcp-hub
# 请修改为自己的,如果存在则不用重复配置
seata.tx-service-group = lcp_hub_tx
# 请修改为自己的,如果存在则不用重复配置
seata.service.vgroup-mapping.lcp_hub_tx = default
# 请修改为自己的,宿主应用的名称
lcp.core.feignName = lcp-app
# 请修改为自己的
lcp.data.feignName = lcp-data
# 请修改为自己的
csb.feignName = CSB-LEGOX/legox
3.2 LCP-APP集成
同hub一样可以以组件方式集成到宿主服务当中,过程类似
3.2.1 maven依赖
以1.7.1-SNAPSHOT为例
<dependency>
<groupId>com.cvte.lcp</groupId>
<artifactId>lcp-app-launcher</artifactId>
<version>1.7.1-SNAPSHOT</version>
</dependency>
3.2.2 Apollo配置
# -----------主应用如果已经有,则不用配置-----开始----------------
spring.application.name = lcp-app
server.port = 8081
spring.datasource.type = com.zaxxer.hikari.HikariDataSource
spring.datasource.url = jdbc:postgresql://pgtest002.gz.cvte.cn:5432/****
spring.datasource.username = c**
spring.datasource.password = c***
spring.datasource.driver-class-name = org.postgresql.Driver
spring.datasource.filters = stat
spring.datasource.maxActive = 20
spring.datasource.initialSize = 1
spring.datasource.maxWait = 60000
spring.datasource.minIdle = 1
spring.datasource.timeBetweenEvictionRunsMillis = 60000
spring.datasource.minEvictableIdleTimeMillis = 300000
spring.datasource.validationQuery = select '1' as txt
spring.datasource.testWhileIdle = true
spring.datasource.testOnBorrow = false
spring.datasource.testOnReturn = false
spring.datasource.poolPreparedStatements = true
spring.datasource.maxOpenPreparedStatements = 20
spring.datasource.hikari.maximumPoolSize = 50
spring.datasource.hikari.minimumIdle = 10
spring.datasource.hikari.idleTimeout = 600000
spring.datasource.hikari.connectionTimeout = 30000
spring.datasource.hikari.maxLifetime = 1800000
csb.mybatis.isPerformanceInterceptorActive = true
spring.redis.host = redis-test003.gz.cvte.cn
spring.redis.port = 6379
spring.redis.password = ******
spring.redis.timeout = 20000
spring.redis.pool.max-active = 200
spring.redis.pool.max-idle = 10
spring.redis.pool.min-idle = 2
spring.redis.pool.max-wait = 20000
spring.redis.database = 0
spring.rabbitmq.url = rmq-test.gz.cvte.cn:5672
spring.rabbitmq.username = clcp
spring.rabbitmq.password = 8Hf%83Vjp4c4
spring.rabbitmq.virtualHost = /clcp
spring.rabbitmq.listener.retry.enabled = true
spring.rabbitmq.host = rmq-test.gz.cvte.cn
spring.rabbitmq.port = 5672
spring.rabbitmq.publisherConfirms = true
eureka.client.serviceUrl.defaultZone = https://eureka-fat1.gz.cvte.cn/eureka/,https://eureka-fat2.gz.cvte.cn/eureka/
csb.iac.appId = 2a1fe9c4-4f65-419c-bd4e-****
csb.iac.appSecret = 836f4178-bbf6-47ba-905d-****
csb.iac.systemId = f03853eb-c694-4cf3-854f-***
csb.iac.tenantId = c518f53d-b405-4111-afe1-***
# -----------主应用如果已经有,则不用配置-----结束----------------
lcp.formTemplate.list = modules/FormTemplate/List
lcp.formTemplate.page = modules/FormTemplate/Page
lcp.formTemplate.detail = modules/FormTemplate/Detail
lcp.dict.appType = LOW_CODE_PLATFORM
csb.wfp.url = https://csbtest-api.gz.cvte.cn/wfp-api
oa.innerUrl = /pdm/baseline/alternative/oa
oa.backUrl = https://lcptest.gz.cvte.cn/core
csb.wfp.sysId = CPLM-OBJECT
clcp.msg.caller = CSB
clcp.msg.sender = 对象引擎服务<csb@cvte.io>
clcp.msg.env = FAT
wf.notice.email = ****@cvte.com
service.csno.url = https://csbtest-api.gz.cvte.cn/csno
form.workflow.lifecycle.dictId = LCP_CONF_WFSTATUS
service.file.url = https://csbtest-api.gz.cvte.cn/cfile
# 宿主服务名
hub.domain.url = https://lcptest.gz.cvte.cn/hub
lcp.dict.keyCode = itemValue
elasticsearch.index.item = csb-test-substance-item
elasticsearch.index.change = csb-test-substance-change
# 可以公用
spring.elasticsearch.rest.uris = https://ltc-es-test.gz.cvte.cn:9200
spring.elasticsearch.rest.protocol = https
spring.elasticsearch.rest.hostname = ltc-es-test.gz.cvte.cn
spring.elasticsearch.rest.port = 9200
spring.elasticsearch.rest.username = business_csb
spring.elasticsearch.rest.password = eLhsagp2dgzTt
event.center.url = event-dev.gz.cvte.cn
event.source.prodLine = PLAT
event.source.system = LCP
event.source.tenantId = 78076a48-bb75-4f55-be7f-d84e5e657bbe
#暂用该通道验证,需申请平台的通道
event.mq.mqCode = biz
3.2.3 数据库脚本
全量数据库脚本:LCP-APP脚本-坚果云
3.1.4 环境变量
JAVA_OPTS = -Denv=FAT
app.id = ******
# platform.lcpSeata,platform.zipkin为平台公共配置不用修改或者自己维护
apollo.app.namespaces = lcp-app,platform.lcpSeata,platform.zipkin
# 修改为自己的
seata.application-id = lcp-app
# 修改为自己的
seata.tx-service-group = lcp_app_tx
# 修改为自己的
seata.service.vgroup-mapping.lcp_app_tx = default
# 修改为自己的
lcp.data.feignName = lcp-data
# 修改为自己的
lcp.hub.feignName = lcp-hub
# 修改为自己的
csb.feignName = CSB-LEGOX/legox
# 修改为自己的
csb.dictionary.feignName = CSB-LEGOX/legox
# 修改为自己的
csb.serial.feignName = CSB-LEGOX/legox
# 修改为自己的
csb.base.feignName = CSB-LEGOX/legox
# 修改为自己的
csb.userRole.feignName = CSB-LEGOX/legox
# 修改为自己的
csb.org.feignName = CSB-LEGOX/legox
3.2 LCP-DATA服务部署
参考Java端部署文档V1.6.0中【3. 低代码数据服务LCP-DATA】
作者:聂维 创建时间:2023-01-12 15:57
最后编辑:叶端旺 更新时间:2024-12-11 10:09
最后编辑:叶端旺 更新时间:2024-12-11 10:09