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)
代码文档: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 及中间件安装指南 |
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