项目描述
- 前后端分离的企业级微服务架构
- 基于
Spring Boot 2.0.X
、Spring Cloud Finchley
和Spring Cloud Alibaba
- 深度定制
Spring Security
真正实现了基于RBAC
、jwt
和oauth2
的无状态统一权限认证的解决方案 - 提供应用管理,方便第三方系统接入
- 引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易
- 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖
- 非常适合学习和企业中使用
项目总体架构图
功能介绍
- 「统一认证功能」
- 支持oauth2的四种模式登录
- 支持用户名、密码加图形验证码登录
- 支持手机号加密码登录
- 支持openId登录
- 支持第三方系统单点登录
- 「分布式系统基础支撑」
- 服务注册发现、路由与负载均衡
- 服务降级与熔断
- 服务限流(url/方法级别)
- 统一配置中心
- 统一日志中心
- 统一分布式缓存操作类、cacheManager配置扩展
- 分布式锁
- 分布式任务调度器
- 支持CI/CD持续集成(包括前端和后端)
- 分布式高性能Id生成器
- 分布式事务
- 「系统监控功能」
- 服务调用链监控
- 应用拓扑图
- 慢服务检测
- 服务Metric监控
- 应用监控(应用监控、JVM、内存、线程)
- 错误日志查询
- 慢查询SQL监控
- 应用吞吐量监控(qps、rt)
- 服务降级、熔断监控
- 服务限流监控
- 分库分表、读写分离
- 「业务基础功能支撑」
- 高性能方法级幂等性支持
- RBAC权限管理,实现细粒度控制(方法、url级别)
- 快速实现导入、导出功能
- 数据库访问层自动实现crud操作
- 代码生成器
- 基于Hutool的各种便利开发工具
- 网关聚合所有服务的Swagger接口文档
- 统一跨域处理
- 统一异常处理
4. 模块说明
mallcloud -- 父项目,公共依赖
│ ├─mall-business -- 业务模块一级工程
│ │ ├─user-center -- 用户中心[7000]
│ │ ├─file-center -- 文件中心[5000]
│ │ ├─member-center -- 会员中心[7001]
│ │ ├─goods-center -- 商品中心[7002]
│ │ ├─order-center -- 订单中心[7003]
│ │ ├─marking-center -- 营销中心[7004]
│ │─mall-commons -- 通用工具一级工程
│ │ ├─mall-auth-client-spring-boot-starter -- 封装spring security client端的通用操作逻辑
│ │ ├─mall-common-spring-boot-starter -- 封装通用操作逻辑
│ │ ├─mall-db-spring-boot-starter -- 封装数据库通用操作逻辑
│ │ ├─mall-log-spring-boot-starter -- 封装log通用操作逻辑
│ │ ├─mall-redis-spring-boot-starter -- 封装Redis通用操作逻辑
│ │ ├─mall-ribbon-spring-boot-starter -- 封装Ribbon和Feign的通用操作逻辑
│ │ ├─mall-sentinel-spring-boot-starter -- 封装Sentinel的通用操作逻辑
│ │ ├─mall-swagger2-spring-boot-starter -- 封装Swagger通用操作逻辑
│ ├─mall-config -- 配置中心
│ ├─mall-doc -- 项目文档
│ ├─mall-gateway -- api网关一级工程
│ │ ├─zuul-gateway -- netflix-zuul[8080]
│ ├─mall-job -- 分布式任务调度一级工程
│ │ ├─job-admin -- 任务管理器[8081]
│ │ ├─job-core -- 任务调度核心代码
│ │ ├─job-executor-samples -- 任务执行者executor样例[8082]
│ ├─mall-monitor -- 监控一级工程
│ │ ├─sc-admin -- 应用监控[6500]
│ │ ├─log-center -- 日志中心[6200]
│ ├─mall-uaa -- spring-security认证中心[8000]
│ ├─mall-register -- 注册中心Nacos[8848]
│ ├─mall-transaction -- 事务一级工程
│ │ ├─txlcn-tm -- tx-lcn事务管理器[7970]
│ ├─mall-demo -- demo一级工程
│ │ ├─txlcn-demo -- txlcn的demo
│ │ ├─sharding-jdbc-demo -- sharding-jdbc的demo
uniapp
uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架,开发者编写一套代码,可编译到iOS、Android、H5、小程序等多个平台。
项目部署
前期准备
1. 在idea安装lombok插件
2. 在idea安装MybatisX Plugin插件(选装)
3. 准备好数据库5.7+或8.0.14+
4. 初始化数据库
5. 脚本路径:根目录 mallcloud.sql
6. 准备好Redis
7. 准备好注册中心Nacos
8. 启动命令地址:mall-register\nacos\bin
9. Linux/Unix/Mac
10. 启动命令(standalone代表着单机模式运行,非集群模式):
11. sh startup.sh -m standalone
12. Windows
13. 启动命令:
14. cmd startup.cmd
15. 或者双击startup.cmd运行文件
16. 修改mall-config/src/main/resources/application-dev.properties里面的配置参数
17. 数据库配置
18. redis配置
19. elasticsearch配置
20. 非必须,如果不启用日志功能可不管
21. sentinel配置
22. 非必须,主要是用于展示应用吞吐量
23. 修改每个工程的bootstrap.yml文件里的nacos地址参数,如nacos是在本机启动的话就改为以下地址
- mall:
- nacos:
- server-addr: 127.0.0.1:8848
1. 项目启动:
2. 启动认证中心mall-uaa
3. 启动用户中心mall-bussiness/user-center
4. 启动网关mall-gateway/zuul-gateway
5. - 下面是业务模块,不一定需要全部启动
6. 启动订单中心mall-bussiness/order-center
7. 启动会员中心mall-bussiness/member-center
8. 启动商品中心mall-bussiness/goods-center
9. 启动营销中心mall-bussiness/marking-center
10. 启动内容中心mall-bussiness/cms-center
11. 启动前端工程: 解压根目录的mallcloud-admin-vue.zip,为后台管理的vue前端,
12. 需要安装nodejs环境,然后进入此目录,npm install ,成功后执行 npm run dev