08 部署与配置
1. 构建与运行
1.1 环境要求
| 组件 |
要求 |
| JDK |
8 |
| Maven |
3.6+ |
| 数据库 |
KingbaseES 8(部分 Profile 仍接 Oracle) |
| 缓存 |
Redis(Session) |
| 电话 |
Asterisk + AMI 账号 + 会议桥 Conf-01 |
| 串口 |
广播/话机控制串口(默认 COM1,Linux 下为 /dev/ttyS0 等) |
| 文件 |
照片、离寓抓拍、录音的可读写目录 |
1.2 构建
pom.xml 未声明 <packaging>,默认生成 jar。
- 入口继承
SpringBootServletInitializer,如需部署到外部 Tomcat,可改为 <packaging>war</packaging> 并排除内嵌容器。
- 构建前注意
pom.xml 中 Boot 3.x 依赖版本与 Boot 2.6.13 的兼容问题(见 09)。
1.3 启动
或:
默认端口 8081,上下文路径 /yktgl。
2. Profile 对照
| Profile |
公寓 gyid / gymc |
数据源 |
备注 |
local |
TMXC 图们行车公寓 |
Kingbase 127.0.0.1:54321/gygl |
本机调试,Redis/AMI/串口均本机 |
dev |
未启用(注释为 TLXC) |
Kingbase 10.32.209.76:54321/gygl |
开发环境 |
prod |
TLNXC 通辽南行车公寓 |
Kingbase 10.33.165.41:54321/gygl |
生产 |
tl |
TLXC 通辽行车公寓 |
Kingbase 10.32.209.76:54321/gygl |
通辽 |
sjt |
SJTXC 苏家屯行车公寓 |
Kingbase 10.32.209.76:54321/gygl |
苏家屯 |
byq |
BYQXC 鲅鱼圈行车公寓 |
Oracle 10.32.116.45/db3 |
仍在 Oracle |
cc |
SJTXC 苏家屯行车公寓 |
Oracle 10.32.5.175/rlxt |
仍在 Oracle,注意与 sjt 同名不同库 |
dl |
DLXC 大连行车公寓 |
Oracle 10.32.116.45/db3 |
仍在 Oracle |
pj |
PJXC 盘锦行车公寓 |
Oracle 10.32.116.45/db3 |
仍在 Oracle |
所有 Profile 中的数据库口令、AMI 口令、devicePassword 目前均为明文,且已提交到仓库。生产使用前应改为环境变量/配置中心,并轮换口令。
3. 关键配置项
3.1 服务
| 配置 |
说明 |
server.port |
默认 8081 |
server.servlet.context-path |
/yktgl |
spring.profiles.active |
默认 local |
spring.mvc.pathmatch.matching-strategy |
ant_path_matcher(兼容 Springfox) |
3.2 数据源与连接池
| 配置 |
说明 |
spring.datasource.url |
Kingbase 需带 currentSchema=gygl |
spring.datasource.driver-class-name |
com.kingbase8.Driver |
spring.datasource.hikari.* |
最小空闲 5、最大 15、连接超时 60s、最大生命周期 600s |
3.3 Redis / Session
| 配置 |
说明 |
spring.redis.host/port |
Redis 地址 |
spring.session.store-type |
redis |
spring.session.timeout |
默认 30m |
3.4 公寓与业务开关 baseConfig
| 配置 |
说明 |
gyid / gymc |
当前公寓(单公寓/默认兜底) |
centerServerUrl |
中心服务器地址(照片前缀等) |
serverUrl |
服务自身地址 |
synJcXxIp |
运安推送来源 IP 白名单(逗号分隔) |
devicePassword |
设备心跳返回的设备密码 |
centralPhoneIp |
中心电话 IP |
serverOS |
windows / linux,影响照片与抓拍路径 |
modifyyasj |
是否允许调整运安叫乘时间 |
allowRouteChangeAfterCompletedCall |
默认 true;叫乘完成后是否允许运安匹配继续变更交路 |
syncMatchWaitSeconds |
默认 900;抓取/匹配等待同步锁的最长秒数 |
fjgydbs |
分公寓/终端所属公寓段的交互标识(按需配置) |
3.5 电话与录音 callcontrol
| 配置 |
说明 |
callcontrol.ami.host/port |
AMI 地址 |
callcontrol.ami.user/pwd |
AMI 账号 |
callcontrol.ami.console |
值班台分机/控制台号 |
callcontrol.ami.callduration |
呼叫时长上限(秒) |
callcontrol.console.port/baudrate/... |
串口参数 |
callcontrol.recording.base-url |
录音回放根地址;为空时默认 http://<ami.host>/conf/ |
RECORDING_BASE_URL |
环境变量覆盖录音地址 |
3.6 离寓抓拍 leaveSnapshot
| 配置 |
默认 |
说明 |
enabled |
true |
是否保存抓拍 |
requiredForDevice |
false |
设备未传抓拍是否失败(兼容旧设备) |
retentionDays |
7 |
保留天数 |
cleanupCron |
0 30 2 * * ? |
每日清理 |
rootDirectory |
见 Profile |
抓拍保存目录 |
urlPrefix |
/yktgl/photo/leave-snapshots |
访问前缀 |
3.7 静态资源与文件
| 配置 |
说明 |
spring.web.resources.static-locations |
classpath:/static/ + 文件目录(Linux 常见 /home/gygl/resouce/) |
| 人员照片 |
.../resouce/photo/{ryid}.png(代码中写死,Windows 为 C:\project_doc\resouce\photo\) |
| 离寓抓拍 |
.../resouce/photo/leave-snapshots/{gyid}/{eventId}.jpg |
照片路径在 RegistService 中按 serverOS 硬编码,迁移环境时需同步修改代码或改为配置项。
4. 数据库升级
手工脚本位于 yktgl/src/main/resources/db/,按日期顺序执行:
GY_SYN_JCXX_STATUS.sql(首次部署)
manual/V20260921_01__leave_snapshot_evidence_kingbase.sql
manual/V20260922_01__call_duty_notice_dedup_kingbase.sql
manual/V20261008_01__syn_jcxx_write_time_kingbase.sql
manual/V20261008_02__call_duty_match_lock_kingbase.sql
manual/V20261009_01__jcxx_history_archive_kingbase.sql
manual/V20261023_01__cash_request_state_kingbase.sql
manual/V20261029_01__reconcile_tlxc_room_occupancy_preview.sql(先预览)
manual/V20261029_01__reconcile_tlxc_room_occupancy.sql(确认后执行)
注意:
- 脚本不会随应用启动自动执行。
- 执行前备份;先跑 preview 核对影响行数。
- 若数据库仍为 Oracle,需确认脚本语法是否兼容(现有 manual 脚本以 Kingbase 为主)。
5. 多公寓部署
两种方式:
- 一套服务一个公寓:通过
baseConfig.gyid/gymc 指定;设备 IP 仍参与解析。
- 一套服务多个公寓:依赖
GY_SB.ip / GY_GYZD.ip 做 IP→公寓映射;同一 IP 命中多个公寓会直接拒绝。
部署检查:
- 每个公寓的设备 IP 必须唯一归属。
- 反向代理必须透传真实客户端 IP(
X-Forwarded-For),否则所有请求会被识别为代理 IP。
- WebSocket 需允许
Upgrade/Connection 头,并适当延长超时。
6. 上线检查清单
7. 运行期维护
| 事项 |
建议 |
| 日志 |
现有 System.out 与业务日志混杂,建议接入统一日志文件与轮转 |
| 归档 |
每日 00:00 自动归档 7 天前离寓记录;数据量大时关注执行耗时 |
| 抓拍清理 |
每日 02:30 清理过期抓拍;确认磁盘余量 |
| 同步 |
运安每 5 分钟抓取;观察 JWDATA_SYNC_LOG 与同步状态 |
| 备份 |
数据库 + 照片/抓拍目录 + 录音目录 |
| 口令 |
尽快外置并轮换数据库/AMI/设备口令 |