# 独立安装
文档中以MySQL数据安装为示例进行安装。
# 安装介质说明和准备
独立安装介质内置了AFcenter,无需再安装AFCenter环境。
独立安装介质目录如下:
Primeton_MDM_7.1_GA_Standalone
├── clearLog.cmd
├── clearLog.sh
├── readme.txt
├── server
│ ├── mdm
│ │ ├── bin
│ │ ├── config
│ │ ├── db-scripts
│ │ ├── lib
│ │ └── mdmall-boot-7.1.1-exec.jar // 主数据主程序
│ └── primetonlicense.xml
├── shutdown.cmd
├── shutdown.sh
├── startup.cmd
├── startup.sh
└── web
├── afcenter //全部前端资源
│ ├── assets
│ ├── bfp
│ ├── components
│ ├── config
│ ├── formDesigner
│ ├── ide
│ ├── index.html
│ ├── mdm // 主数据前端资源
│ ├── process
│ ├── remoteEntry.js
│ ├── remoteEntry.js.gz
│ ├── static
│ └── version.properties
└── conf
└── mdm.conf
# 确认版本证书是否过期
查看目录中文件server/primetonlicense.xml里
# 数据库初始化
如果执行的是mysql的脚本,请在执行脚本之前将数据库设置不区分表名大小写。
# 创建数据库
创建mdm和mdm_pub两个数据库。执行如下脚本:
CREATE DATABASE `mdm` DEFAULT CHARACTER SET utf8mb4;
CREATE DATABASE `mdm_pub` DEFAULT CHARACTER SET utf8mb4;
# 执行初始化脚本
独立介质安装时需要按顺序执行EOS、AFCenter、MDM的数据库初始化脚本。初始化脚本路径为
Primeton_MDM_7.1_GA_Standalone/server/mdm/db-scripts,其中包括了EOS、AFCenter、bfp、lowcode、MDM的脚本。
mdm数据库初始化,可以按如下两种方式执行脚本(两种方式选择其一即可):
# 一步执行:
all/mysql/mdm-all.sql
# --------------------------------
# 分步执行:
afcenter/Mysql/all.sql
bfp/Mysql/all.sql
eos/Mysql/all.sql
lowcode/Mysql/all.sql
mdm/mysql/00-mdm-afc-data.sql
mdm/mysql/01-afc-template-data.sql
mdm/mysql/10-mdm-ddl.sql
mdm/mysql/11-mdm-data.sql
mdm_pub数据库初始化,执行如下脚本:
all/mysql/mdmpub-all.sql
# 添加驱动
检查server/mdm/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
<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>
# 2.主数据配置文件:config/application.properties
# --------------------------------------配置案例---------------------------------------------------
# 微服务唯一标识(不可更改)
spring.application.name=MDM
# session有效期
server.servlet.session.timeout=PT120M
# 后端端口号
server.port=28090
# 激活afc和mdm配置文件
spring.profiles.active=nacos,afc,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=5
# 任务执行线程池大小
spring.task.execution.pool.core-size=50
# 任务执行线程池最大值
spring.task.execution.pool.max-size=100
# 任务执行线程池排队容量大小
spring.task.execution.pool.queue-capacity=100000
# 公开端点
management.endpoints.web.exposure.include=hystrix.stream,health,info,loggers,eos
# 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
# 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
# bps微应用名称
bps.application.name=BPS-SERVER-STANDALONE
# bps租户id
bps.tenant.id=BPS_DEFAULT_TENANT
# 是否开启eos日志(默认开启)
engine.show.log=true
#---------------------------------------可按需修改------------------------------------------
# 如果要更改端口,则修改
server.port=xxx
# redis连接配置:换成以上获取到的redis的连接属性
spring.redis.host=xxx
spring.redis.port=6379
spring.redis.password=primeton
# 3.主数据配置文件:config/application-afc.properties
# --------------------------------------配置案例---------------------------------------------------
# 排除自动配置
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
# 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
# 数据库厂商方言配置
## MySQL
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
## 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
## Oracle
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
## SQLServer
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
# 订阅推送设置心跳检测订阅者服务是否在线时间间隔
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.support-unified-response=false
# 是否开启数据记录日志(默认为是)
mdm.data.record.log.enabled=true
# 是否开启数据推送(默认为是)
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
# 是否开启序号清空(默认为是)
mdm.block-sequence-code.clear=true
# 序号清空间隔时间
mdm.block-sequence-code.clear.interval=0 0 2 * * ?
# 是否开启数据查询日志(默认为是)
mdm.op-log.data-query.enabled=true
# 是否开启数据维护日志(默认为否)
mdm.op-log.data-maintain.enabled=false
# 是否开启日志自动清理(默认为否)
mdm.op-log.clean.enabled=false
# 日志自动清理间隔
mdm.op-log.clean.keep-days=30
# 日志自动清理时间
mdm.op-log.clean.scheduled=0 0 3 * * ?
# 主题同步间隔
mdm.afc.copy.scheduled.time=5000
# 邮件服务协议地址
spring.mail.host=smtp.126.com
# 用来发送邮件的邮箱地址
spring.mail.username=xxxxx@126.com
# 邮箱密码
spring.mail.password=
# 邮箱协议
spring.mail.protocol=
# 邮件编码规则
spring.mail.default-encoding=UTF-8
#---------------------------------------可按需修改------------------------------------------
# 推送email配置
spring.mail.host=邮箱host
spring.mail.username=邮箱地址
spring.mail.password=密码
spring.mail.protocol=协议
spring.mail.default-encoding=UTF-8
如果要更改db库厂商,则开放对应配置对应方言 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
# 前端配置
nginx网关配置server,前端静态资源、afc、mdm
upstream mdmapp {
server 127.0.0.1:28090; # 主数据部署后端ip:port
}
server {
listen 80;
client_max_body_size 20M; #限制请求体的大小,默认是1M
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1";
add_header Content-Security-Policy "script-src * 'unsafe-inline' 'unsafe-eval'";
add_header X-Frame-Options "SAMEORIGIN";
add_header Strict-Transport-Security "max-age=SECONDS";
add_header Referrer-Policy "no-referrer" always;
add_header X-Permitted-Cross-Domain-Policies "master-only";
add_header X-Download-Options noopen;
location / {
root /XXX/afcenter;# 根据前端资源所在当前机器路径
index index.html index.htm;
}
location ^~/api/ {
proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
proxy_pass http://mdmapp;
}
location ~/(.*)/api/ {
proxy_set_header X-EOS-SourceSysKey 359e22bf398043cb866a92dc1cbbd3f6;
rewrite ^/(.*)/api/(.*)$ /api/$2 break;
proxy_pass http://mdmapp;
}
}
# 启动服务
- linux:
1.复制文件夹server/mdm到服务器运行目录
2.执行脚本:bin/startup.sh,查看日志logs/eos-trace.log
3.启动nginx: /usr/local/nginx/sbin/nginx -s start
4.访问http://nginx机器IP:前端Port
- windows:
1.复制文件夹server/mdm到服务器运行目录
2.执行脚本:bin/startup.cmd,查看日志logs/eos-trace.log
3.启动nginx: nginx.exe -s start
4.访问http://nginx机器IP:前端Port
# 环境登录和验证
访问http://nginx机器IP:前端Port
,使用初始用户登录,用户名/密码为:admin/000000
1.进入[组织权限中心]->[账号管理]->[账号:admin]
2.为账号添加角色【主数据管理员】
3.刷新页面,导航栏增加菜单【主数据】,点击即可进入主数据首页