科学工具
科学工具让世界更美好
让世界更美好

基于Spring Cloud的开源微服务商城系统 Mall4cloud基于Spring Cloud的开源微服务商城系统 Mall4cloud

Mall4cloud是一个基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现,拥有完整的订单流程等,代码完全开源,没有任何二次封装,是一个非常适合二次开发的电商平台系统。Mall4cloud整合了 Nacos、Seata、MySQL、Redis、RocketMQ、Canal、ElasticSearch、MinIO 等技术组件,实现分布式部署与高性能运行。

模块名称 主要功能描述
mall4cloud-api 内网接口模块,封装各服务对内调用接口(如授权、订单、商品等)
mall4cloud-auth 授权校验模块,处理用户认证与权限管理
mall4cloud-biz 通用业务模块,包含图片上传、短信发送等基础服务
mall4cloud-common 公共工具模块,提供缓存、数据库连接、RocketMQ 等通用功能组件
mall4cloud-gateway 网关模块,基于 Spring Cloud Gateway 实现路由转发与负载均衡
mall4cloud-leaf 分布式 ID 生成服务,基于美团 Leaf 方案实现唯一标识符生成
mall4cloud-multishop 商家端服务,支持店铺管理、商品发布、订单处理等商家功能
mall4cloud-order 订单服务模块,处理订单创建、状态更新、物流跟踪等全流程逻辑
mall4cloud-payment 支付服务模块,集成主流支付渠道,实现支付下单与异步回调处理
mall4cloud-platform 平台端管理服务,包含系统设置、商家审核、数据统计等核心管理功能
mall4cloud-product 商品服务模块,管理商品分类、属性、SKU、库存等信息
mall4cloud-rbac 权限管理模块,实现用户角色(RBAC)模型,控制菜单与接口访问权限
mall4cloud-search 搜索服务模块,基于 ElasticSearch 实现商品搜索与关键词分析
mall4cloud-user 用户服务模块,管理用户注册、登录、信息维护及会员体系

项目遵循阿里巴巴代码规约,目录结构采用分层设计,清晰定义各层职责:

mall4cloud
├─mall4cloud-api -- 内网接口层(FeignClient 定义)
│  ├─各子模块接口包(如 auth、biz、order 等)
├─mall4cloud-auth -- 授权服务
├─mall4cloud-biz -- 基础业务服务
├─mall4cloud-common -- 公共组件
│  ├─cache:缓存工具
│  ├─core:核心工具类
│  ├─database:数据库连接
│  ├─rocketmq:消息队列处理
│  └─security:安全组件
├─mall4cloud-gateway -- 网关服务
├─mall4cloud-leaf -- 分布式 ID 服务
├─其他业务模块(如 multishop、order、product 等)
代码对象规范

VO(View Object):显示层对象,用于前端模板渲染。

DTO(Data Transfer Object):数据传输对象,处理前端与后台数据交互。

BO(Business Object):业务对象,用于内部逻辑处理,不对外暴露。

Model:数据模型,与数据库表结构映射,通过 Mapper 层操作数据。

Controller:外部请求入口,负责参数校验与简单业务处理。

Service/Manager:业务逻辑层,Manager 层封装第三方接口适配与通用能力(如缓存、消息队列)。

Mapper:持久层,实现数据库 CRUD 操作。

技术领域 组件/技术 说明
微服务框架 Spring Cloud 2023 提供服务注册、负载均衡、分布式配置等核心能力
服务注册与发现 Nacos 2.x 动态服务发现与配置管理,支持高可用集群部署
分布式事务 Seata AT 模式 解决微服务间事务一致性问题
消息队列 RocketMQ 5.x 异步消息通信,支撑订单状态更新、库存同步等场景
数据搜索 ElasticSearch 8.x 商品搜索与全文检索,支持复杂查询与分词分析
分布式缓存 Redis 6.x 缓存热点数据,提升系统响应速度
文件存储 MinIO 分布式文件存储,支持图片、附件等静态资源管理
数据库同步 Canal + RabbitMQ 基于 MySQL binlog 的数据同步方案,实现读写分离与数据分发
前端框架 Vue 3 + Element Plus 平台端采用 Vue 3 开发,商家端与用户端基于 UniApp 实现多端适配
系统架构
用户端(H5/小程序/APP)
├─ 静态层(UniApp/Element UI)
├─ 接入层(Nginx/防火墙)
├─ 网关层(Spring Cloud Gateway + LoadBalancer)
├─ 服务层(微服务集群)
│  ├─ 认证授权(mall4cloud-auth)
│  ├─ 商品服务(mall4cloud-product)
│  ├─ 订单服务(mall4cloud-order)
│  └─ 其他业务服务
├─ 数据层
│  ├─ 持久化(MySQL)
│  ├─ 缓存(Redis)
│  └─ 搜索(ElasticSearch)
└─ 中间件(Nacos/Seata/RocketMQ/MinIO)

Mall4cloud开发和部署

文档工具

代码文档doc 目录包含开发指南、接口文档、部署说明等,https://gitee.com/gz-yami/mall4cloud/tree/master/doc 开发环境搭建视频https://www.bilibili.com/video/BV1TK411C7aV,建议先阅读文档再观看视频 代码规约扫描:项目通过阿里巴巴代码规范检测

部署信息

默认账号

• 平台端:admin / 123456(代码地址 https://gitee.com/gz-yami/mall4cloud-platform

• 商家端:admin / 123456(代码地址 https://gitee.com/gz-yami/mall4cloud-multishop

服务地址示例(本地部署):

服务名称 访问地址
网关服务 http://127.0.0.1:8000
授权服务 http://127.0.0.1:9101
订单服务 http://127.0.0.1:9106
部署教程:参考 doc/基本开发文档/mall4cloud开发环境搭建.md 及中间件安装指南

Mall4cloud项目链接

Java 后台代码https://gitee.com/gz-yami/mall4cloud

平台端前端https://gitee.com/gz-yami/mall4cloud-platform

商家端前端https://gitee.com/gz-yami/mall4cloud-multishop

UniApp 移动端https://gitee.com/gz-yami/mall4cloud-uniapp