7.9 KiB
ERP微服务架构与数据库设计报告
文档信息
- 项目名称:ERP Java微服务系统
- 版本:V1.0
- 日期:2026-04-04
- 微服务数量:23个
- 数据库数量:13个
一、总体架构
1.1 微服务列表
| 序号 | 服务名称 | 服务说明 | 端口 | 数据库 |
|---|---|---|---|---|
| 1 | user-service | 用户服务 | 8081 | user_db |
| 2 | order-service | 订单服务 | 8082 | order_db |
| 3 | product-service | 商品服务 | 8083 | product_db |
| 4 | inventory-service | 库存服务 | 8084 | inventory_db |
| 5 | warehouse-service | 仓库服务 | 8085 | warehouse_db |
| 6 | finance-service | 财务服务 | 8086 | finance_db |
| 7 | customer-service | 客户管理 | 8087 | customer_db |
| 8 | supplier-service | 供应商管理 | 8088 | supplier_db |
| 9 | purchase-service | 采购管理 | 8089 | purchase_db |
| 10 | invoice-service | 发票服务 | 8090 | invoice_db |
| 11 | notification-service | 通知服务 | 8091 | notification_db |
| 12 | ai-service | AI服务 | 8092 | ai_db |
| 13 | file-service | 文件服务 | 8093 | file_db |
| 14 | permission-service | 权限服务 | 8094 | permission_db |
| 15 | tenant-service | 租户服务 | 8095 | tenant_db |
| 16 | approval-flow-service | 审批流服务 | 8096 | approval_db |
| 17 | reconciliation-service | 对账服务 | 8097 | reconciliation_db |
| 18 | report-service | 报表服务 | 8098 | report_db |
| 19 | dashboard-service | 仪表盘服务 | 8099 | dashboard_db |
| 20 | system-tool-service | 系统工具服务 | 8100 | system_tool_db |
| 21 | admin-service | 超级管理员服务 | 8101 | admin_db |
| 22 | category-service | 分类服务 | 8102 | category_db |
| 23 | api-gateway | API网关 | 8000 | 无(路由) |
二、数据库详细设计
2.1 user_db(用户服务)
服务:user-service
主要表:
- users(用户表)
- roles(角色表)
- permissions(权限表)
- user_roles(用户角色关联)
- login_logs(登录日志)
核心字段:id, username, password, email, phone, status, created_at
2.2 order_db(订单服务)
服务:order-service
主要表:
- orders(订单主表)
- order_items(订单明细)
- order_logs(订单操作日志)
- settlement_reports(结算报表)
- order_settlements(订单结算)
核心字段:order_no, customer_id, total_amount, status, created_at
2.3 product_db(商品服务)
服务:product-service
主要表:
- goods(商品表)
- brands(品牌表)
- categories(分类表)
- goods_sku(SKU规格)
核心字段:goods_no, name, price, stock, status
2.4 warehouse_db(仓库服务)
服务:warehouse-service
主要表:
- stock(库存表)
- stock_logs(库存流水)
- warehouses(仓库表)
- locations(库位表)
- inbound_order(入库单)
- outbound_order(出库单)
- transfer_order(调拨单)
- stock_alert_config(预警配置)
- stock_alert_notification(预警通知)
核心字段:sku_id, warehouse_id, quantity, locked, reserved
2.5 finance_db(财务服务)
服务:finance-service
主要表:
- finance_transactions(财务流水)
- account_balances(账户余额)
- payments(付款记录)
- receipts(收款记录)
核心字段:transaction_no, type, amount, balance_before, balance_after
2.6 customer_db(客户管理)
服务:customer-service
主要表:
- customers(客户表)
- customer_contacts(联系人)
- customer_addresses(地址)
- customer_follow_ups(跟进记录)
- customer_relationships(客户关系)
- customer_statistics(统计)
核心字段:customer_no, name, level, phone, address
2.7 supplier_db(供应商管理)
服务:supplier-service
主要表:
- suppliers(供应商表)
- supplier_contacts(供应商联系人)
- supplier_bank_accounts(银行账户)
- supplier_ratings(评级记录)
- inquiry_sheets(询价单)
核心字段:supplier_no, name, contact, phone, status
2.8 purchase_db(采购管理)
服务:purchase-service
主要表:
- purchase_orders(采购订单)
- purchase_inbound(采购入库)
- purchase_return(采购退货)
- suppliers(供应商)
核心字段:purchase_no, supplier_id, total_amount, status
2.9 invoice_db(发票服务)
服务:invoice-service
主要表:
- invoices(发票表)
- invoice_items(发票明细)
核心字段:invoice_no, customer_id, amount, type, status
2.10 notification_db(通知服务)
服务:notification-service
主要表:
- notifications(通知消息)
- notification_templates(模板)
核心字段:title, content, type, recipient, status
2.11 ai_db(AI服务)
服务:ai-service
主要表:
- ai_conversations(对话记录)
- ai_messages(消息记录)
- ai_usage_logs(用量日志)
核心字段:conversation_id, model, prompt, response
2.12 file_db(文件服务)
服务:file-service
主要表:
- files(文件表)
- file_groups(文件分组)
核心字段:file_name, file_path, file_size, mime_type
2.13 其他数据库
| 数据库 | 服务 | 主要表 |
|---|---|---|
| permission_db | permission-service | roles, permissions |
| tenant_db | tenant-service | tenants, packages |
| approval_db | approval-flow-service | audit_rules, audit_logs |
| reconciliation_db | reconciliation-service | reconciliation_bills |
| report_db | report-service | data_exports |
| dashboard_db | dashboard-service | dashboard_configs |
| system_tool_db | system-tool-service | system_configs, operation_logs |
三、技术栈
3.1 后端技术
- 框架:Spring Boot 3.2 / Spring Cloud Alibaba
- ORM:MyBatis-Plus 3.5
- 注册中心:Nacos
- 配置中心:Nacos
- 消息队列:RocketMQ
- 分布式事务:Seata(AT模式)
- API网关:Spring Cloud Gateway
- 数据库:MySQL 8.0
- 缓存:Redis
3.2 基础设施
- 容器化:Docker + Kubernetes
- 监控:SkyWalking
- 日志:ELK Stack
- 对象存储:MinIO
四、服务间调用关系
客户端
↓
API Gateway(认证、限流、路由)
↓
┌─────────────────────────────────────────┐
│ 业务微服务层 │
├─────────────────────────────────────────┤
│ user-service ←→ permission-service │
│ order-service ←→ inventory-service │
│ order-service ←→ finance-service │
│ order-service ←→ warehouse-service │
│ purchase-service ←→ supplier-service │
│ purchase-service ←→ warehouse-service │
│ purchase-service ←→ finance-service │
│ customer-service ←→ order-service │
└─────────────────────────────────────────┘
↓
分布式事务(Seata)
↓
消息队列(RocketMQ)
五、部署架构
5.1 Kubernetes部署
- 每个微服务独立Deployment
- HPA自动扩缩容
- 探针健康检查
- 资源限制(CPU/内存)
5.2 数据库部署
- 每个数据库独立Pod
- 主从复制
- 定期备份
六、后续规划
- 服务合并:考虑将小服务合并,减少服务数量
- 读写分离:对订单、商品等大表做读写分离
- 分库分表:对超大数据量表做分片
- 缓存优化:增加Redis缓存,减少数据库压力
- API文档:完善Swagger/OpenAPI文档
文档生成时间:2026-04-04
生成人:丫头AI助手