Banner

Mall4cloud 微服务商城

2026-10-14

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 后端微服务打包 & 启动

  1. 回到 mall4cloud 根目录,maven 打包所有微服务 jar 包
mvn clean package -DskipTests
  1. 将打包后的 jar 放入 docker 目录,启动各微服务容器(gateway、auth、product、order、payment 等)
启动顺序非常重要: 1.Nacos → 2.gateway 网关 → 3.auth 认证服务 → 4. 基础服务(leaf) → 5. 业务服务(商品、订单、用户、营销、财务)

Step8 前端打包部署

  1. 平台端、商家端 Vue 项目:安装依赖,build 打包 dist 静态资源
npm install
npm run build
  1. Uni-app 移动端:HBuilderX 打包 H5 / 小程序
  2. Nginx 配置,反向代理网关 8000 端口,托管前端静态页面

Step9 访问系统

  • 平台后台:http://IP:8000/platform
  • 商家后台:http://IP:8000/multishop
  • H5 商城:http://IP:8000/h5
  • Nacos 控制台:http://IP:8848

1.3 方式 B:IDEA 源码本地开发部署(开发人员)

  1. Git 拉取源码,IDEA 打开根工程,等待 Maven 下载全部依赖
  2. 修改每个服务的 application.yml,配置 Nacos、MySQL、Redis、RocketMQ、ES、MinIO 地址
  3. 严格顺序启动
    mall4cloud-gateway(网关)→ mall4cloud-auth → mall4cloud-leaf → product、user、order、payment、marketing、platform、multishop
  4. 启动前端 Vue 项目,访问本地调试

1.4 系统初始化(网页后台操作)

  1. 使用默认管理员账号登录平台端,修改初始密码
  2. 基础配置顺序:
    ① 平台类目、品牌管理
    ② 入驻商家配置(开启商家入驻 / 手动新增商家账号)
    ③ 平台运费模板、支付配置(微信支付、支付宝密钥)
    ④ 文件存储 MinIO 配置
    ⑤ 营销基础参数、积分规则
  3. 商家账号登录商家后台,创建店铺、上传商品、设置库存
  4. C 端 H5 / 小程序访问,测试下单、支付、订单流转

1.5 联调外部系统(对接前面 Y-OMS-WMS-TMS)

业务链路:C 端用户 Mall4cloud 下单 → Mall4cloud 订单服务推送订单 API 到 Y-OMS → OMS 库存校验、分仓 → 下发 WMS 拣货出库 → WMS 出库回调 TMS → TMS 生成运单;物流状态回传给 Mall4cloud 前台展示物流轨迹。

对接要点:

  1. Mall4cloud 订单服务开启 Webhook/API 推送,新订单实时推送 OMS
  2. 订单状态、物流状态回写接口,Mall4cloud 接收履约状态更新
  3. 库存双向同步:WMS 真实库存同步回 Mall4cloud 商品库存

1.6 运维方案 & 备份

  1. MySQL 定时全量备份 + binlog 增量备份,保留 7~30 天备份
  2. Nacos 配置备份,定期导出配置
  3. RocketMQ 消息监控,防止消息堆积(大促重点)
  4. Elasticsearch 索引定期优化,日志切割
  5. 监控:服务器 CPU、内存;各微服务进程、Nacos 服务上下线、MQ 消息堆积
  6. 发布流程:先测试环境验证 → 数据库备份 → 生产滚动更新微服务实例

1.7 常见踩坑点

  1. 内存不足:ES 非常吃内存,16G 以下极易 OOM 崩溃
  2. Nacos 地址配置错误,服务注册失败,微服务之间无法调用
  3. 服务器 IP 写 127.0.0.1,容器之间网络不通
  4. Seata 事务未配置,下单出现超卖、订单和库存数据不一致
  5. MinIO 权限错误,商品图片上传失败
  6. RocketMQ 磁盘满,消息停止消费,订单卡住
  7. 跨域问题,Nginx 反向代理配置错误前端无法调用接口
  8. 支付回调外网无法访问,内网环境支付测试失败


7