一个不容错过的Spring Cloud实战项目!
mall-swarm
作为mall
项目的Spring Cloud版本,目前已更新至最新代码,新增了权限管理功能。mall
项目中的代码将一直保持最新,mall-swarm
每过一段时间将从mall
中合并一次代码,本文主要介绍mall-swarm
的基本内容及学习路线。
mall-swarm简介
mall-swarm
是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm
在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。
系统架构图
后端技术栈
技术 | 说明 |
---|---|
Spring Cloud | 微服务框架 |
Spring Boot | 容器+MVC框架 |
Spring Security | 认证和授权框架 |
MyBatis | ORM框架 |
MyBatisGenerator | 数据层代码生成 |
PageHelper | MyBatis物理分页插件 |
Swagger-UI | 文档生产工具 |
Elasticsearch | 搜索引擎 |
RabbitMq | 消息队列 |
Redis | 分布式缓存 |
MongoDb | NoSql数据库 |
Docker | 应用容器引擎 |
Druid | 数据库连接池 |
OSS | 对象存储 |
MinIO | 对象存储 |
JWT | JWT登录支持 |
LogStash | 日志收集 |
Lombok | 简化对象封装工具 |
Seata | 全局事务管理框架 |
Portainer | 可视化Docker容器管理 |
Jenkins | 自动化部署工具 |
项目结构
mall
├── mall-common -- 工具类及通用代码模块
├── mall-mbg -- MyBatisGenerator生成的数据库操作代码模块
├── mall-security -- 封装SpringSecurity+JWT的安全认证的模块
├── mall-registry -- 基于Eureka的微服务注册中心
├── mall-config -- 基于Spring Cloud Config的微服务配置中心
├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务
├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心
├── mall-admin -- 后台管理系统服务
├── mall-search -- 基于Elasticsearch的商品搜索系统服务
├── mall-portal -- 移动端商城系统服务
└── mall-demo -- 微服务远程调用测试服务
学习路线
之前有朋友问我,
mall-swarm
这个项目有没有学习教程?其实这个项目的功能与mall
项目基本一致,只是在此基础上改成了微服务版本,只要看我写的《mall学习教程》和《Spring Cloud学习教程》即可,下面聊聊我所推荐的学习路线。
学习mall
《mall学习教程》主要分为如下几个部分,推荐学习顺序是除参考篇以外可以按下面的顺序学习,对于参考篇,可以在用到里面相关技术时再学习。
-
序章: mall
项目的整体架构及功能介绍,同时对于新手推荐了一些相关书籍资料; -
架构篇: mall
项目的架构搭建教程,手把手教你搭建一个mall
项目在使用的基本项目骨架; -
业务篇: mall
项目电商业务相关教程,对于了解项目业务有很大帮助; -
技术要点篇: mall
项目中的一些技术要点解析,主要介绍一些技术在项目中的运用; -
部署篇: mall
项目的部署教程,包括Windows、Linux和自动化部署方案; -
参考篇: mall
项目中所用技术和工具的入门教程,每一篇都可以单独学习,对于mall
项目,这些教程的深入程度都刚刚好。
学习SpringCloud
《Spring Cloud学习教程》是一套涵盖大部分核心组件使用的教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7。20篇文章,篇篇精华,30个Demo,涵盖大部分应用场景。mall-swarm
项目中所用到的Spring Cloud技术该教程基本都涵盖了,学习该教程可以为学习mall-swarm
项目打下良好的Spring Cloud基础。
学习mall-swarm
当我们学习了《mall学习教程》和《Spring Cloud学习教程》之后就可以着手学习mall-swarm
这个项目了。首先需要的就是按之前的教程把项目跑起来,然后进行源码的学习,相信有了学习上面两套教程的基础,搞懂源码并不是什么难事。下面提供下mall-swarm
的部署教程:
对接前端项目
最近发现有很多朋友使用mall-admin-web
项目来对接mall-swarm
项目,遇到了一些问题。这里需要提醒一点,由于我们的mall-swarm
项目使用Spring Cloud Gateway作为网关服务,所以前端请求都需要走网关服务,具体可以参考。
项目地址
https://github.com/macrozheng/mall-swarm