5.0 KiB
5.0 KiB
存储架构说明
文档定位:存储分层与数据流的专题说明文档。 本文主要解释 geMoldInsight 的存储架构,不作为当前部署入口或当前状态的权威说明。当前部署方式见 ../../DEPLOYMENT.md,当前状态见 ../../STATUS.md,总体架构见 ../../ARCHITECTURE.md。 其历史中的“本项目自行拉起 PostgreSQL / MinIO 并通过
python src/main.py启动单体”的部分,已不再代表当前默认部署方式。
当前默认部署前提是:
- PostgreSQL 由服务器已有服务提供
- Redis 由服务器已有服务提供
- RustFS / MinIO 兼容对象存储由服务器已有服务提供
- 项目自身只部署:
moldinsight/moldinsight-celery/inventory
如需查看当前部署方式,请优先参考:
- ../../../README.md
- ../../deployment/LINUX_SETUP.md
- ../../deployment/DEPLOY_PORT.md
- ../../archive/BACKEND_MODULARIZATION_BLUEPRINT.md
架构概述
本项目采用 RustFS(S3兼容)对象存储 + PostgreSQL 元数据存储 的双层存储架构。
┌─────────────────────────────────────────────────────────────┐
│ 应用层 (moldinsight / inventory) │
└──────────────────────┬──────────────────────────────────────┘
│
┌──────────────┴──────────────┐
│ │
┌───────▼────────┐ ┌─────────▼─────────┐
│ PostgreSQL │ │ RustFS / S3 │
│ (元数据) │ │ (对象存储) │
│ │ │ │
│ - users │ │ - stp-files │
│ - stp_files │ │ - geometry │
│ - geometry_data│ │ - mold-cavities │
│ - processing │ │ - html-files │
│ - logs │ │ - user-files │
└────────────────┘ └──────────────────┘
PostgreSQL 数据表(摘要)
用户管理
users- 用户信息roles/permissions- 权限体系
moldinsight 相关
stp_files- STP 文件元数据html_files- HTML 报告元数据geometry_data- 几何分析数据mold_cavity_data- 模具型腔数据feature_detections- 特征检测结果design_recommendations- 设计建议processing_tasks- 处理任务记录analysis_metrics- 分析指标
inventory 相关
products- 产品/物料product_materials- BOMinventory- 库存stock_movements- 库存流水purchase_orders/sales_orders- 订单finance_transactions- 财务流水
RustFS / S3 存储桶
| 存储桶名称 | 用途 | 存储内容 |
|---|---|---|
moldinsight-stp-files |
STP/STEP 文件 | 用户上传的原始 3D 模型 |
moldinsight-geometry |
几何结果 | 几何分析 JSON |
moldinsight-mold-cavities |
模具结果 | 模具设计 JSON |
moldinsight-html |
HTML 报告 | 生成的 HTML 报告文件 |
moldinsight-user-files |
用户文件 | 其他附件/用户文件 |
当前推荐初始化方式
1. 准备环境变量
cp .env.example .env
nano .env
确保以下变量指向服务器上已存在的真实服务:
DB_HOST=your-db-host
DB_PORT=5432
DB_NAME=moldinsight
DB_USER=moldinsight
DB_PASSWORD=change-me
REDIS_HOST=your-redis-host
REDIS_PORT=6379
REDIS_PASSWORD=
RUSTFS_ENDPOINT=http://your-storage-host:9000
RUSTFS_ACCESS_KEY=change-me
RUSTFS_SECRET_KEY=change-me
2. 初始化数据库
当前初始化入口参考:
3. 启动项目服务
当前推荐通过:
而不是继续使用历史单体 python src/main.py 作为默认方式。
监控与维护
对象存储
- 检查对象存储服务可达性
- 定期清理历史产物
- 配置生命周期策略
PostgreSQL
- 定期备份
- 监控连接池与慢查询
- 保持 Alembic 迁移链一致
故障排除
对象存储连接失败
- 检查
RUSTFS_ENDPOINT - 检查 access key / secret key
- 检查服务端口与网络策略
数据库连接失败
- 检查
DB_HOST/DB_PORT - 检查数据库账号密码
- 检查防火墙与白名单
文件上传失败
- 检查对象存储可用性
- 检查 Celery worker 是否运行
- 检查 Redis 是否可达