Mall4cloud 微服务商城
1.1 硬件资源要求
测试环境(单机 Docker Compose)
- CPU ≥ 4 核
- 内存 ≥ 16G(重点!8G 大概率 ES、MQ 直接崩溃)
- SSD 硬盘 ≥ 100G
生产环境推荐(分布式拆分)
- Nacos、MySQL、RocketMQ、Elasticsearch、应用服务分开独立服务器
- MySQL 主从,Redis 集群,RocketMQ 集群,ES 集群
- 应用服务可多实例水平扩容
软件清单
Docker、Docker-Compose、JDK11、Maven3.6+、Git;前端:Node.js 16+
1.2 方式 A:Docker Compose 一键部署(推荐演示 / 测试)
Step1 服务器初始化
# 关闭防火墙(仅测试环境)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
yum update -y
Step2 安装 Docker & Docker Compose
yum install docker -y
systemctl start docker
systemctl enable docker
# 安装compose
curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -v
Step3 拉取 mall4cloud 中间件 docker-compose 配置
git clone https://gitee.com/gz-yami/mall4cloud.git
cd mall4cloud
# 进入项目内置中间件目录
cd docker-compose
目录包含:MySQL、Nacos、Redis、RocketMQ、Elasticsearch、MinIO,全部在 compose 文件定义。
Step4 修改环境配置
编辑.env,修改:
- 数据库密码
- Nacos 账号密码
- MinIO 账号密码
- 服务器 IP 地址(重点,不能写 127.0.0.1,否则其他容器访问失败)
Step5 启动全部中间件
docker-compose up -d
等待 5~10 分钟全部容器启动成功。
验证:访问 Nacos 控制台 http://服务器IP:8848 登录。
Step6 导入数据库脚本
进入 mysql 容器,执行项目提供的 SQL 初始化脚本:
- mall4cloud_platform
- mall4cloud_multishop
- mall4cloud_order
- mall4cloud_user
脚本路径在项目 doc/sql 目录
Step7 后端微服务打包 & 启动
- 回到 mall4cloud 根目录,maven 打包所有微服务 jar 包
mvn clean package -DskipTests
- 将打包后的 jar 放入 docker 目录,启动各微服务容器(gateway、auth、product、order、payment 等)
启动顺序非常重要: 1.Nacos → 2.gateway 网关 → 3.auth 认证服务 → 4. 基础服务(leaf) → 5. 业务服务(商品、订单、用户、营销、财务)
Step8 前端打包部署
- 平台端、商家端 Vue 项目:安装依赖,build 打包 dist 静态资源
npm install
npm run build
- Uni-app 移动端:HBuilderX 打包 H5 / 小程序
- Nginx 配置,反向代理网关 8000 端口,托管前端静态页面
Step9 访问系统
- 平台后台:
http://IP:8000/platform - 商家后台:
http://IP:8000/multishop - H5 商城:
http://IP:8000/h5 - Nacos 控制台:
http://IP:8848
1.3 方式 B:IDEA 源码本地开发部署(开发人员)
- Git 拉取源码,IDEA 打开根工程,等待 Maven 下载全部依赖
- 修改每个服务的
application.yml,配置 Nacos、MySQL、Redis、RocketMQ、ES、MinIO 地址 - 严格顺序启动
mall4cloud-gateway(网关)→ mall4cloud-auth → mall4cloud-leaf → product、user、order、payment、marketing、platform、multishop - 启动前端 Vue 项目,访问本地调试
1.4 系统初始化(网页后台操作)
- 使用默认管理员账号登录平台端,修改初始密码
- 基础配置顺序:
① 平台类目、品牌管理
② 入驻商家配置(开启商家入驻 / 手动新增商家账号)
③ 平台运费模板、支付配置(微信支付、支付宝密钥)
④ 文件存储 MinIO 配置
⑤ 营销基础参数、积分规则 - 商家账号登录商家后台,创建店铺、上传商品、设置库存
- C 端 H5 / 小程序访问,测试下单、支付、订单流转
1.5 联调外部系统(对接前面 Y-OMS-WMS-TMS)
业务链路:C 端用户 Mall4cloud 下单 → Mall4cloud 订单服务推送订单 API 到 Y-OMS → OMS 库存校验、分仓 → 下发 WMS 拣货出库 → WMS 出库回调 TMS → TMS 生成运单;物流状态回传给 Mall4cloud 前台展示物流轨迹。
对接要点:
- Mall4cloud 订单服务开启 Webhook/API 推送,新订单实时推送 OMS
- 订单状态、物流状态回写接口,Mall4cloud 接收履约状态更新
- 库存双向同步:WMS 真实库存同步回 Mall4cloud 商品库存
1.6 运维方案 & 备份
- MySQL 定时全量备份 + binlog 增量备份,保留 7~30 天备份
- Nacos 配置备份,定期导出配置
- RocketMQ 消息监控,防止消息堆积(大促重点)
- Elasticsearch 索引定期优化,日志切割
- 监控:服务器 CPU、内存;各微服务进程、Nacos 服务上下线、MQ 消息堆积
- 发布流程:先测试环境验证 → 数据库备份 → 生产滚动更新微服务实例
1.7 常见踩坑点
- 内存不足:ES 非常吃内存,16G 以下极易 OOM 崩溃
- Nacos 地址配置错误,服务注册失败,微服务之间无法调用
- 服务器 IP 写 127.0.0.1,容器之间网络不通
- Seata 事务未配置,下单出现超卖、订单和库存数据不一致
- MinIO 权限错误,商品图片上传失败
- RocketMQ 磁盘满,消息停止消费,订单卡住
- 跨域问题,Nginx 反向代理配置错误前端无法调用接口
- 支付回调外网无法访问,内网环境支付测试失败