5.5 KiB
5.5 KiB
旧现网 vs 新系统 inquiry_robot(切换只改配置,不改代码)
同一套制品。用 YTD_ENV=prod 或 YTD_ENV=test 区分阶段(变量名仍叫 YTD_*,与 03 对齐)。
域名与企微与现网相同(ai.ytd-scm.com、应用 1000010)。
新系统资源名一律 inquiry_robot*,禁止再用 ytd_test / ytd:test: / ytd-test。
禁止在代码里写死域名/库名。
切流目标(方案 B):E:\wwwroot 取代 C:\yutongda。清单见 deploy/CUTOVER-TO-PROD.md。
对照表是切换清单。旧现网发布仍走甲方原流程与 C:\yutongda 指针;新系统只写 E:\wwwroot。
对照
| 项 | 旧现网(仍在跑) | 新系统 inquiry_robot |
|---|---|---|
YTD_ENV |
prod(旧进程) |
切流前可用 test;切流日改 prod |
| 公网域名 | ai.ytd-scm.com |
同一域名 |
| DNS / 证书 / Nginx | 已有 ai.conf |
不要另开域名/证书;反代按切流改 |
| 站点 / H5 / 企微回调 | 同左 | 配置字符串相同;企微回调 URL 不用改 |
| 后台 API 前缀 | /jeecgboot → 8080 |
/jeecgboot → 新主账 8180(切流后) |
| 运行根 | C:\yutongda |
E:\wwwroot(admin\current / agent\current) |
| 主账端口 | 8080(Jeecg) | 8180(新 Java 主账,非 Jeecg) |
| 智能体 HTTP | 8810(另 8809/8811) | 8910(合并) |
| AIBOT | 8813 | 8913(切流前勿双连) |
| MySQL | jeecg-boot / ytd_jeecg |
inquiry_robot / inquiry_robot |
| PostgreSQL | ytd_runtime |
inquiry_robot_runtime |
| Redis | db0 ytd:prod:node01-07 |
db1 inquiry_robot: |
| MinIO 桶 | ytd-inquiry |
inquiry-robot(S3 桶名不能用下划线) |
| 询价企微应用 | 1000010 |
同一套 |
| 运维企微 | 1000014 |
同一套;切流前告警可加 [test] |
| AIBOT Bot | 现网 Bot | 同一套;切流先停 8813 再开 8913 |
| TMS | 03 现网 Client |
同一套;切流前默认关 lock/release |
| 发布脚本 | 现网累计发布器 | 只写 E:\wwwroot |
| 告警前缀 | 无 | 切流前 [test];切流后去掉 |
数据机 IP、3306/5432/6379、MinIO 127.0.0.1:9000 两边相同。只换库名、用户、Redis db/前缀、桶。
数据库与存储(同一套变量名)
代码、YAML 只读变量名,禁止写死库名。旧现网明文见 03;新系统口令新开,写入 E:\wwwroot\.env。
| 变量 | 旧现网 | 新系统 |
|---|---|---|
MYSQL_HOST |
10.206.0.14 |
同左 |
MYSQL_PORT |
3306 |
同左 |
MYSQL_DB |
jeecg-boot |
inquiry_robot |
MYSQL_USER |
ytd_jeecg |
inquiry_robot |
MYSQL_PASSWORD |
见 03 |
新开,勿抄旧现网 |
YTD_MYSQL_URL / JDBC |
.../jeecg-boot?... |
.../inquiry_robot?... |
PG_HOST |
10.206.0.14 |
同左 |
PG_PORT |
5432 |
同左 |
PG_DATABASE |
ytd_runtime |
inquiry_robot_runtime |
PG_USER |
ytd_runtime |
inquiry_robot_runtime |
PG_PASSWORD |
见 03 |
新开 |
PG_SSLMODE |
prefer |
prefer |
CHECKPOINT_BACKEND |
postgres |
postgres |
YTD_REDIS_HOST |
10.206.0.14 |
同左 |
YTD_REDIS_PORT |
6379 |
同左 |
YTD_REDIS_USERNAME |
ytd_app |
可同账号或新账号 |
REDIS_URL |
...6379/0 |
...6379/1 |
REDIS_KEY_PREFIX |
ytd:prod:node01-07 |
inquiry_robot: |
OBJECT_STORAGE_BUCKET |
ytd-inquiry |
inquiry-robot |
新系统 .env 片段(口令留空):
YTD_ENV=test
YTD_DEPLOY_ROOT=E:\wwwroot
MYSQL_DB=inquiry_robot
MYSQL_USER=inquiry_robot
YTD_MYSQL_URL=jdbc:mysql://10.206.0.14:3306/inquiry_robot?characterEncoding=UTF-8&useUnicode=true&useSSL=true&requireSSL=true&verifyServerCertificate=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
PG_DATABASE=inquiry_robot_runtime
PG_USER=inquiry_robot_runtime
REDIS_URL=redis://ytd_app:<密码>@10.206.0.14:6379/1
REDIS_KEY_PREFIX=inquiry_robot:
OBJECT_STORAGE_BUCKET=inquiry-robot
切换环境 = 换 .env 取值,不改代码、不在迁移里写死库名。
切流前新进程不得连 jeecg-boot / ytd_runtime / Redis /0 且前缀 ytd:prod: / 桶 ytd-inquiry。
代码约定
所有环境差异只进 .env / 前端构建参数 / Nginx,例如:
YTD_ENV=test
PUBLIC_BASE_URL=https://ai.ytd-scm.com
WECOM_CALLBACK_URL=https://ai.ytd-scm.com/wecom/callback
INQUIRY_FORM_PUBLIC_BASE_URL=https://ai.ytd-scm.com/inquiry-form
BIZ_API_BASE_URL=http://127.0.0.1:8180
AGENT_CALLBACK_BASE_URL=http://127.0.0.1:8910
WECOM_AIBOT_BRIDGE_URL=http://127.0.0.1:8913
WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
REDIS_KEY_PREFIX=inquiry_robot:
PG_DATABASE=inquiry_robot_runtime
MYSQL_DB=inquiry_robot
OBJECT_STORAGE_BUCKET=inquiry_robot
两套 .env 分开放:旧现网仍在 C:\yutongda\...,新系统在 E:\wwwroot\.env。不要互相覆盖。
以后切到正式(新系统接管)
见 deploy/CUTOVER-TO-PROD.md。顺序摘要:
- 新进程在隔离库
inquiry_robot*验收通过。 .env:YTD_ENV=prod;库继续inquiry_robot*(或甲方最终名)。- Nginx 反代切到新主账/智能体;企微回调 URL 不用改。
- 停旧 8813,再起 8913。
- 去掉告警
[test]。
禁止
- 新进程连
jeecg-boot/ytd:prod:/ 桶ytd-inquiry - 新系统再使用
ytd_test/ytd:test:/ytd-test命名 - 并存期与现网 同时 连接同一 AIBOT 长连接
- 一份
.env混用两套库