文档信息
| 属性 | 值 |
|---|---|
| 文档版本 | V0.1 |
| 创建日期 | 2026-05-22 |
| 适用范围 | |
| 核心定位 | OMS系统架构设计与技术实现指导 |
| 技术栈 | YuDao-Cloud + MateClaw |
| 技术框架 | Spring Cloud 2023.0.x + Spring Boot 3.2.x |
一、架构概述
1.1 设计目标
| 目标类型 | 描述 |
|---|---|
| 高可用 | 支持高并发、低延迟的订单处理能力 |
| 可扩展 | 模块化设计,支持业务快速迭代 |
| 易维护 | 清晰的架构分层,便于运维和故障排查 |
| 数据安全 | 多租户数据隔离,符合合规要求 |
| 性能卓越 | 订单处理能力≥10000单/秒 |
1.2 架构原则
| 原则 | 描述 |
|---|---|
| 单一职责 | 每个模块只负责一个核心功能 |
| 松耦合 | 模块间通过接口通信,降低依赖 |
| 高内聚 | 相关功能集中在同一模块 |
| 可观测 | 完善的日志、监控、告警体系 |
| 容错设计 | 故障隔离、降级处理、熔断机制 |
1.3 业务定位与运营目标
基于城市配送/ToB计划物流的核心定位,OMS系统需支撑以下运营目标:
| 运营目标 | 描述 | 量化指标 |
|---|---|---|
| 仓运配一体化 | 干线运输与城配无缝衔接,实现端到端履约 | 订单履约时效提升30% |
| ToB计划配送 | 基于时间窗的计划性配送,满足门店定时补货需求 | 准时送达率≥99% |
| 逆向物流闭环 | 门店退货、换货、召回全流程管理 | 逆向订单处理周期≤24小时 |
| 多仓协同 | 区域仓、前置仓、门店仓库存共享与调度 | 库存周转率提升25% |
| 运力优化 | 智能匹配干线与城配运力资源 | 装载率≥85% |
二、系统架构设计
2.1 技术架构图
flowchart TD
subgraph 接入层
A[YuDao Gateway API网关]
B[Nginx负载均衡]
C[YuDao Auth身份认证]
end
subgraph YuDao Cloud微服务层
D[oms-order订单服务]
E[oms-inventory库存服务]
F[oms-route路由服务]
G[oms-workorder工单服务]
H[oms-report报表服务]
I[oms-message消息服务]
J[oms-tub ToB计划配送服务]
K[oms-reverse逆向物流服务]
L[oms-integrated仓运配协同服务]
M[oms-capacity运力调度服务]
N[MateClaw低代码平台]
end
subgraph 中间件层
O[Nacos配置中心]
P[Sentinel熔断降级]
Q[Seata分布式事务]
end
subgraph 数据层
R[MySQL主库]
S[MySQL从库]
T[Redis Cluster缓存]
U[MongoDB文档存储]
V[Elasticsearch搜索]
W[RocketMQ消息队列]
end
subgraph 外部系统
X[WMS仓储管理]
Y[TMS运输管理]
Z[BMS计费管理]
AA[ERP企业资源]
AB[电商平台]
AC[电子口岸]
end
A --> D
A --> E
A --> F
A --> G
A --> H
A --> I
A --> J
A --> K
A --> L
A --> M
A --> N
D --> R
E --> R
F --> R
G --> R
H --> V
I --> W
J --> R
K --> R
L --> R
M --> R
D --> X
D --> Y
D --> Z
D --> AA
D --> AB
D --> AC
2.2 模块划分
| 模块 | 职责描述 | 核心功能 |
|---|---|---|
| 订单服务 | 订单全生命周期管理 | 订单创建、审核、分配、履约、完成 |
| 库存服务 | 库存管理与预占 | 库存查询、预占、释放、预警 |
| 路由服务 | 智能分仓与路径规划 | 订单分流、仓库分配、线路规划 |
| 工单服务 | 异常工单管理 | 工单创建、分配、跟踪、闭环 |
| 报表服务 | 数据分析与可视化 | 多维度报表、实时看板 |
| 消息服务 | 消息推送与通知 | 状态变更通知、预警推送 |
| 认证服务 | 身份认证与权限管理 | 用户认证、角色权限、数据隔离 |
| 配置服务 | 系统配置管理 | 规则配置、参数管理 |
| ToB计划配送服务 | 时间窗计划配送管理 | 配送计划编排、时间窗分配、波次调度 |
| 逆向物流服务 | 门店逆向订单管理 | 退货申请、质检验收、退款结算 |
| 仓运配协同服务 | 干线与城配衔接 | 干线运输调度、城配衔接、在途监控 |
| 运力调度服务 | 运力资源管理 | 承运商管理、运力匹配、装载优化 |
2.3 核心业务流程
2.3.1 订单创建流程
sequenceDiagram
participant Client as 客户端
participant API as API网关
participant Order as 订单服务
participant Stock as 库存服务
participant DB as 数据库
Client->>API: 创建订单请求
API->>API: 身份认证
API->>Order: 订单创建
Order->>Order: 订单校验
Order->>Stock: 库存预占请求
Stock->>DB: 查询库存
DB-->>Stock: 返回库存信息
Stock->>Stock: 库存预占
Stock-->>Order: 预占成功
Order->>DB: 保存订单
DB-->>Order: 保存成功
Order-->>API: 返回订单信息
API-->>Client: 返回成功
2.3.2 订单分配流程
sequenceDiagram
participant Order as 订单服务
participant Router as 路由服务
participant WMS as WMS系统
participant DB as 数据库
Order->>Router: 订单分配请求
Router->>DB: 查询库存分布
DB-->>Router: 返回库存信息
Router->>Router: 智能分仓算法
Router-->>Order: 返回分配结果
Order->>DB: 更新订单状态
Order->>WMS: 下发订单
WMS-->>Order: 接收成功
三、数据架构
3.1 数据库设计
3.1.1 核心表结构
| 表名 | 描述 | 核心字段 |
|---|---|---|
orders |
订单主表 | order_id, order_no, status, create_time |
order_items |
订单项表 | item_id, order_id, sku_id, quantity |
inventory |
库存表 | sku_id, warehouse_id, quantity, reserved_qty |
warehouses |
仓库表 | warehouse_id, name, type, capacity |
work_orders |
工表单 | work_order_id, order_id, type, status |
users |
用户表 | user_id, tenant_id, role, status |
rules |
规则表 | rule_id, type, conditions, actions |
3.1.2 索引设计
| 表名 | 索引字段 | 索引类型 | 用途 |
|---|---|---|---|
| orders | order_no | UNIQUE | 订单号查询 |
| orders | status, create_time | COMPOSITE | 订单列表查询 |
| order_items | order_id | INDEX | 订单项查询 |
| inventory | sku_id, warehouse_id | COMPOSITE | 库存查询 |
| work_orders | order_id, status | COMPOSITE | 工单查询 |
3.2 缓存策略
| 缓存类型 | 缓存内容 | 过期时间 | 更新策略 |
|---|---|---|---|
| 库存缓存 | 商品库存信息 | 5分钟 | 库存变更时更新 |
| 规则缓存 | 路由规则、分仓规则 | 1小时 | 规则变更时更新 |
| 用户缓存 | 用户信息、权限 | 30分钟 | 用户变更时更新 |
| 配置缓存 | 系统配置参数 | 24小时 | 配置变更时更新 |
3.3 消息队列设计
| 队列名称 | 用途 | 消息类型 | 处理方式 |
|---|---|---|---|
| order_created | 订单创建通知 | 订单信息 | 异步处理后续流程 |
| order_updated | 订单状态变更 | 状态变更信息 | 通知相关系统 |
| inventory_changed | 库存变更通知 | 库存变化信息 | 更新缓存 |
| work_order_created | 工单创建通知 | 工单信息 | 通知处理人员 |
四、接口设计
4.1 接口规范
| 属性 | 规范 |
|---|---|
| 协议 | HTTP/HTTPS |
| 格式 | JSON |
| 编码 | UTF-8 |
| 认证 | OAuth2.0/JWT |
| 版本 | RESTful API版本控制 |
4.2 核心接口列表
4.2.1 订单接口
| API路径 | HTTP方法 | 描述 | 所属模块 |
|---|---|---|---|
| /api/v1/orders | POST | 创建订单 | 订单服务 |
| /api/v1/orders | GET | 查询订单列表 | 订单服务 |
| /api/v1/orders/{id} | GET | 查询订单详情 | 订单服务 |
| /api/v1/orders/{id} | PUT | 更新订单 | 订单服务 |
| /api/v1/orders/{id}/cancel | POST | 取消订单 | 订单服务 |
| /api/v1/orders/{id}/split | POST | 拆分订单 | 订单服务 |
4.2.2 库存接口
| API路径 | HTTP方法 | 描述 | 所属模块 |
|---|---|---|---|
| /api/v1/inventory | GET | 查询库存 | 库存服务 |
| /api/v1/inventory/reserve | POST | 库存预占 | 库存服务 |
| /api/v1/inventory/release | POST | 释放库存 | 库存服务 |
| /api/v1/inventory/adjust | POST | 库存调整 | 库存服务 |
4.2.3 路由接口
| API路径 | HTTP方法 | 描述 | 所属模块 |
|---|---|---|---|
| /api/v1/routes/allocate | POST | 订单分配 | 路由服务 |
| /api/v1/routes/rules | GET | 查询路由规则 | 路由服务 |
| /api/v1/routes/rules | POST | 创建路由规则 | 路由服务 |
4.3 外部系统接口
| 系统 | 接口类型 | 说明 |
|---|---|---|
| WMS | REST API | 订单下发、库存同步、出库回传 |
| TMS | REST API | 运输任务、轨迹同步、签收回传 |
| BMS | REST API | 账单生成、对账数据 |
| ERP | REST API | 订单同步、库存同步 |
| 电商平台 | REST API/消息队列 | 订单拉取、发货回传 |
| 电子口岸 | REST API | 报关数据、清关状态 |
五、部署架构
5.1 部署架构图
flowchart TD
subgraph 外网层
A[CDN]
B[Nginx负载均衡]
end
subgraph 接入层
C[YuDao Gateway集群]
end
subgraph 应用层
D[oms-order订单服务]
E[oms-inventory库存服务]
F[oms-route路由服务]
G[oms-workorder工单服务]
H[oms-report报表服务]
I[oms-message消息服务]
J[oms-tub TUB计划配送]
K[oms-reverse逆向物流]
L[oms-integrated长运配协同]
M[oms-capacity运力调度]
N[MateClaw低代码平台]
end
subgraph 中间件层
O[Nacos配置中心]
P[Sentinel控制台]
Q[Seata事务中心]
end
subgraph 数据层
R[MySQL主从集群]
S[Redis Cluster]
T[MongoDB集群]
U[Elasticsearch集群]
V[RocketMQ集群]
end
subgraph 基础设施
W[Prometheus+Grafana监控]
X[ELK日志系统]
Y[Jenkins CI/CD]
Z[SkyWalking链路追踪]
end
A --> B
B --> C
C --> D
C --> E
C --> F
C --> G
C --> H
C --> I
C --> J
C --> K
C --> L
C --> M
C --> N
D --> R
E --> R
F --> R
G --> R
H --> U
I --> V
D --> S
E --> S
D --> O
E --> O
F --> O
5.2 环境配置
| 环境 | 用途 | 配置说明 |
|---|---|---|
| 开发环境 | 开发调试 | 单节点部署 |
| 测试环境 | 功能测试 | 模拟生产配置 |
| 预发布环境 | 上线前验证 | 与生产一致配置 |
| 生产环境 | 正式运行 | 高可用集群配置 |