[TOC]
# 微应用安装
文档中基于MySQL数据库进行产品安装介绍。
主数据 7.2 GA 基于 AFCenter 8.3.0 版本运行,因此不兼容非此版本的 AFCenter 组件。如果安装环境中的 AFCenter 版本低于 8.3.0,需要先升级 AFCenter。从8.2.5版本至8.3.0版本的升级,可参考此文档 (opens new window)。
# 安装介质说明和准备
微应用安装介质前提是已经安装AFCenter环境, 即已经部署的EOS_AFCenter_8.3.0环境。
微应用安装介质有两个:前端介质、后端介质 ,分别将前后端介质解压。
前端目录如下:
Primeton_MDM_7.2_GA_UI
├── assets
├── index.html //首页
├── remoteEntry.js
├── remoteEntry.js.gz
├── static
└── version.properties
后端目录如下
Primeton_MDM_7.2_GA_Server
├── bin //启动脚本
├── config
├── db-scripts //数据库脚本脚本
├── lib
├── mdm-boot-7.2.0-exec.jar //主数据程序
└── version.properties
# 检查授权证书
检查Primeton_MDM_7.2_GA_Server/config/MDM/license目录下primetonlicense.xml文件是否在有效期内。如果超过有效期,请通过售后申请。
注意:查看primetonlicense.xml的有效期,可以查看expiration标签对应的时间。
# 数据库初始化
如果执行的是mysql的脚本,请在执行脚本之前将数据库设置不区分表名大小写。
# 创建数据库
创建mdm和mdm_pub两个数据库。执行如下脚本:
CREATE DATABASE `mdm` DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE `mdm_pub` DEFAULT CHARACTER SET utf8mb4;
# 执行初始化脚本
初始化脚本路径为Primeton_MDM_7.2_GA_Server/db-scripts。
- 初始化主数据的资源权限数据到AFCenter数据库,AFCenter 8.3.0默认数据库为:afcenter4eos8。执行如下脚本:
mdm/mysql/00-mdm-afc-data.sql
- 在mdm数据库中依次执行如下脚本:
eos/Mysql/all.sql
lowcode/Mysql/all.sql
bfp-framework/Mysql/all.sql
bfp-message/Mysql/all.sql
bfp-task/Mysql/all.sql
mdm/mysql/10-mdm-ddl.sql
mdm/mysql/11-mdm-data.sql
- 在mdm_pub数据库中执行如下脚本:
mdm/mysql/20-mdmpub-ddl.sql
# 检查驱动
检查lib目录下包含使用的数据库对应的驱动, 默认支持的数据库驱动及版本如下:
数据库厂商 | 驱动名 | 版本 |
---|---|---|
mysql | mysql-connector-java | 8.0.17 |
oracle | ojdbc6 | 11.2.0.3 |
dameng | DmJdbcDriver18 | 8.1.1.193 |
openGauss | opengauss-jdbc | 3.0.0 |
sqlserver | sqljdbc4 | 4.0 |
# 后端修改配置文件
# 1.数据库配置文件:config/MDM/config/user-config.xml
修改default与MDM_PUB配置:驱动DriverClass、Url、UserName、Password,以MySQL为例配置如下:
<group name="default">
<configValue key="Database-Type">MySql</configValue># db类型
<configValue key="Jdbc-Type"/>
<configValue key="C3p0-DriverClass">com.mysql.cj.jdbc.Driver</configValue>#db驱动
<configValue key="C3p0-Url">jdbc:驱动类型://IP:端口Port/mdm?useSSL=false</configValue>#按数据库连接串配置需求来
<configValue key="C3p0-UserName">用户名</configValue>
<configValue key="C3p0-Password">密码</configValue>
<configValue key="C3p0-PoolSize">5</configValue>
<configValue key="C3p0-MaxPoolSize">30</configValue>
<configValue key="C3p0-MinPoolSize">5</configValue>
<!-- //seconds, 0 means connections never expire -->
<configValue key="C3p0-MaxIdleTime">0</configValue>
<!-- //idle connections never tested -->
<configValue key="C3p0-IdleConnectionTestPeriod">0</configValue>
<configValue key="C3p0-MaxStatements">0</configValue>
<configValue key="C3p0-NumHelperThreads">3</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
<group name="MDM_PUB">
<configValue key="Database-Type">MySql</configValue># db类型
<configValue key="Jdbc-Type"/>
<configValue key="C3p0-DriverClass">com.mysql.cj.jdbc.Driver</configValue>#db驱动
<configValue key="C3p0-Url">jdbc:驱动类型://IP:端口Port/库db/mdm_pub?useSSL=false</configValue>#按数据库连接串配置需求来
<configValue key="C3p0-UserName">用户名</configValue>
<configValue key="C3p0-Password">密码</configValue>
<configValue key="C3p0-PoolSize">5</configValue>
<configValue key="C3p0-MaxPoolSize">30</configValue>
<configValue key="C3p0-MinPoolSize">5</configValue>
<!-- //seconds, 0 means connections never expire -->
<configValue key="C3p0-MaxIdleTime">0</configValue>
<!-- //idle connections never tested -->
<configValue key="C3p0-IdleConnectionTestPeriod">0</configValue>
<configValue key="C3p0-MaxStatements">0</configValue>
<configValue key="C3p0-NumHelperThreads">3</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
其他数据的DriverClass、Url配置可以参考配置说明中的数据源配置示例。
# 2.配置文件:config/application.properties
# --------------------------------------配置案例---------------------------------------------------
# 后端端口号
server.port=28090
# session有效期
server.servlet.session.timeout=PT120M
spring.session.store-type=none
# 微服务唯一标识(不可更改)
spring.application.name=MDM
# 激活nacos,afc,job和mdm配置文件
spring.profiles.active=nacos,afc,job,bps,mdm
# 是否开启文件上传下载(默认为是)
spring.servlet.multipart.enabled=true
# 单次请求大小限制
spring.servlet.multipart.max-request-size=100MB
# 单个文件大小限制
spring.servlet.multipart.max-file-size=20MB
# 文件上传路径
spring.servlet.multipart.location=${user.dir}/data/upload-tmp
# 文件写入磁盘阈值
spring.servlet.multipart.file-size-threshold=100KB
# 全局设置@JsonFormat的格式pattern
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 设置全局时区
spring.jackson.time-zone=GMT+8
# 全局设置pojo或被@JsonInclude注解的属性的序列化方式,不为空的属性才会序列化
spring.jackson.default-property-inclusion=non-null
# 是否在存在不对应的参数时也将请求参数正常解析(当为false时默认为是)
spring.jackson.deserialization.fail-on-unknown-properties=false
# 任务调度线程池大小
spring.task.scheduling.pool.size=6
# 任务执行线程池大小
spring.task.execution.pool.core-size=50
# 任务执行线程池最大值
spring.task.execution.pool.max-size=100
# 任务执行线程池排队容量大小
spring.task.execution.pool.queue-capacity=100000
# hystrix执行最大超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000
# hystrix并发执行的最大线程数
hystrix.threadpool.default.coreSize=100
# hystrix最大线程数
hystrix.threadpool.default.maximumSize=100
# hystrix最大队列数
hystrix.threadpool.default.maxQueueSize=100000
# hystrix动态最大队列数
hystrix.threadpool.default.queueSizeRejectionThreshold=100000
management.endpoints.web.exposure.include=hystrix.stream,health,info,loggers,eos
management.endpoints.web.base-path=/
management.endpoint.health.show-details=never
# redis地址
spring.redis.host=地址
# redis端口号
spring.redis.port=端口号
# redis密码
spring.redis.password=密码
# redis连接池最大连接数
spring.redis.lettuce.pool.max-active=100
# redis连接池中最多保留的空闲连接数量
spring.redis.lettuce.pool.max-idle=100
# redis从连接池获取连接最大的等待时间
spring.redis.lettuce.pool.max-wait=5000
# eos微应用编码
eos.application.sys-code=EOS-DEMO-SYS
# eos微应用密钥
eos.application.sys-key=dc6baaed30e541d78bb91274803d9432
# eosadmin端口
eos.admin.port=6500
# eos缓存模式
eos.cache.mode=redis
# 配置文件目录
out.config.folder=config
is.global.unique=false
# 是否开启eos日志(默认开启)
engine.show.log=true
server.app-server.min-spare-threads=100
server.app-server.max-threads=500
server.app-server.max-connections=10000
server.app-server.accept-count=100
#---------------------------------------可按需修改------------------------------------------
# 如果要更改端口,则修改
server.port=xxx
# redis连接配置:换成以上获取到的redis的连接属性
spring.redis.host=ip地址
spring.redis.port=6379
spring.redis.password=primeton
注意:配置的Redis必须和AFCenter使用的是同一环境。
# 3.配置文件:config/application-afc.properties
# --------------------------------------配置案例---------------------------------------------------
# AFCenter的应用名称,如果修改了AFCenter的应用名称,这里需要同步修改
afc.application.name=127.0.0.1:28083
# 公共资源端口
public-resource.application.name=127.0.0.1:28083
# afc租户名称
afc.application.tenant=sys_tenant
# afc微应用编码
afc.application.app-code=AFC
# afc微应用密码
afc.application.app-secret=secret
# afc日志保留时间(按月)
afc.schedule.logs-to-history.stay-month-number=1
# 排除自动配置
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
# afc日志转为历史
afc.schedule.logs-to-history.cron=0 0 4 1 1/1 ?
# afc历史保留时间(按月)
afc.schedule.logs-to-history.keep-month-number=2
# 是否使用AfcUserLoginFilter
afc.user.login.filter.enable=true
#---------------------------------------可按需修改-------------------------------------------------
# AFCenter的应用名称
afc.application.name=AFCENTER
# 公共资源
public-resource.application.name=127.0.0.1:28083
# 4.配置文件:config/application-mdm.properties
# --------------------------------------配置案例---------------------------------------------------
# 是否开启延时加载(默认为否)
spring.jpa.open-in-view=false
# 是否关闭验证逻辑(默认关闭)
spring.jpa.properties.javax.persistence.validation.mode=none
# 指定数据库初始化模式(默认为不同步数据库表结构)
spring.jpa.hibernate.ddl-auto=none
# 是否开启sql打印(默认关闭)
spring.jpa.show-sql=false
# eos序列化 排除包名
eos.springmvc.eos-serialize.exclude-packages=com.primeton.mdm
## 数据库厂商方言配置
## MySQL
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
## Oracle
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
# spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
## SQLServer
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
## Dameng
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect
### GaussDB
#spring.jpa.database=postgresql
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
#spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false
#data record log
mdm.data.record.log.keep.days=15
# If the esb version integrates AFC, please set true
mdm.esb.support.afc=false
mdm.op-log.clean.keep-days=30
#mill s
mdm.batch.update.insert.size=1000
# 订阅推送设置心跳检测订阅者服务是否在线时间间隔
mdm.schedule.fixed-delay.mdm-inst-heart-beat=300000
# 报告统计间隔
mdm.report.statistic.interval=0 0 * * * ?
# 数据文件储存类型
mdm.data-file.storage-type=file
# 数据文件储存位置
mdm.data-file.storage-location=./data/data-files
# 是否开启数据模型缓存(默认为是)
mdm.data-model-cache.enabled=true
# 是否开启数据记录日志(默认为是)
mdm.data.record.log.enabled=true
mdm.data.record.log.keep.days=15
# 是否开启数据推送(默认为是)
mdm.push.enabled=true
# 是否开启锁(默认为是)
mdm.push.lock-enabled=true
# 核心线程池大小
mdm.push.thread-pool.corePoolSize=50
# 最大线程池大小
mdm.push.thread-pool.maxPoolSize=100
# 队列线程池大小
mdm.push.thread-pool.queueCapacity=200
# 推送扫描间隔(单位为秒)
mdm.push.scan.interval-seconds=60
# 推送数据每页大小
mdm.push.data-page-size=10
# 推送数据步长
mdm.push.data-step-minutes=30
# 是否开启响应体验证(默认为是)
mdm.push.http.validate-response-body.enabled=true
# 响应体code属性
mdm.push.http.validate-response-body.code-attr=code
# 响应体msg属性
mdm.push.http.validate-response-body.msg-attr=message
# 响应体发送成功响应码
mdm.push.http.validate-response-body.ok-code=200
# 推送重试间隔
mdm.push.time-mistake-seconds=30
# 即时推送队列池大小
mdm.push.in-time.event-queue-size=100000
# 邮件服务协议地址
spring.mail.host=smtp.126.com
# 用来发送邮件的邮箱地址
spring.mail.username=xxxxx@126.com
# 邮箱密码
spring.mail.password=
# 邮箱协议
spring.mail.protocol=
# 邮件编码规则
spring.mail.default-encoding=UTF-8
#encrypt config refer to https://eco.dameng.com/document/dm/zh-cn/pm/storage-encryption.html#7.4%20%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95%E5%92%8C%E6%95%A3%E5%88%97%E7%AE%97%E6%B3%95
mdm.model.dm.cipher=DES_ECB
mdm.data.statistic.enabled=true
mdm.data.statistic.interval=0 */5 * * * ?
# 推送email配置
spring.mail.host=邮箱host
spring.mail.username=邮箱地址
spring.mail.password=密码
spring.mail.protocol=协议
spring.mail.default-encoding=UTF-8
不同的数据库厂商,对应方言不同。修改数据源配置,需要同时修改方言配置,如下
MySQL:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Dameng:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.DmDialect
GaussDB:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL9Dialect
Oracle:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
SQLServer:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
# 5.配置文件:config/application-bps.properties
根据实际环境修改bps.application.name配置。
# application name [BPS-SERVER] or ip:port
bps.application.name=127.0.0.1:48084
bps.tenant.id=
# 6.nacos配置文件
修改bootstrap.properties和application-nacos.properties配置,将*.server-addr
配置修改为实际的IP地址和端口。如果和主数据平台为同一服务器,可以不用修改。
bootstrap.properties
# nacos-addr
spring.cloud.nacos.config.enabled=true
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
application-nacos.properties
spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
eureka.client.enabled=false
# 前端配置
根据EOS_AFCenter_8.3.0已配置nginx.conf,只需要将主数据的前端资源复制到afcenter目录下即可。
1.找到已经部署的服务目录web/afcenter
2.在前端资源web/afcenter目录下新建mdm目录,将介质Primeton_MDM_7.2_GA_UI解压至此
3.重启nginx:nginx -s restart
# 启动服务
- linux:
1.执行脚本:server/mdm/bin/startup.sh,查看日志logs/eos-trace.log,检查启动过程是否有错误信息。
2.访问http://<ip>:<port>
,检查页面是否能够正常显示和登录。
- windows:
1.执行脚本:server/mdm/bin/startup.cmd,查看日志logs/eos-trace.log,检查启动过程是否有错误信息。
2.访问http://<ip>:<port>
,检查页面是否能够正常显示和登录。
# 环境登录和验证
使用用户admin登录主数据管理平台。
1.进入[组织中心]->[机构管理]菜单,在“全部员工”中选择“admin”。
2.在弹出窗口中,选择“角色设置”,点击“添加角色”按钮,为admin用户添加“主数据管理员”角色。
3.刷新页面,导航栏增加菜单【主数据】,点击即可进入主数据首页