「开源」前后端分离的企业级微服务多租户系统架构,快速开发平台
开源系统流程管理

一、开源项目简介
基于SpringBoot2.x、SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务多租户系统架构。并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易,适合学习和企业中使用。真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案,面向互联网设计同时适合B端和C端用户,支持CI/CD多环境部署,并提供应用管理方便第三方系统接入;同时还集合各种微服务治理功能和监控功能。模块包括:企业级的认证系统、开发平台、应用监控、慢sql监控、统一日志、单点登录、Redis分布式高速缓存、配置中心、分布式任务调度、接口文档、代码生成等等。
二、开源协议
使用Apache-2.0开源协议
三、界面展示














四、功能概述

- 演示环境有全方位的监控示例:日志系统 + APM系统 + GPE系统
- 前后端分离的企业级微服务架构
- 基于 SpringBoot2.x、Spring Cloud 和 Spring Cloud Alibaba
- 主要针对解决微服务和业务开发时常见的非功能性需求
- 深度定制Spring Security真正实现了基于RBAC、jwt和oauth2的无状态统一权限认证的解决方案
- 面向互联网设计,同时适合B端和C端用户
- 支持CI/CD多环境部署
- 提供应用管理,方便第三方系统接入,支持多租户(应用隔离)
- 引入组件化的思想实现高内聚低耦合并且高度可配置化
- 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖
- 非常适合学习和企业中使用
核心功能
统一认证功能网关统一认证url级权限控制支持oauth2的四种模式登录支持用户名、密码加图形验证码登录支持手机号加密码登录支持openId登录支持第三方系统单点登录
分布式系统基础支撑服务注册发现、路由与负载均衡服务降级与熔断服务限流(url/方法级别)统一配置中心统一日志中心统一搜索中心统一分布式缓存操作类、cacheManager配置扩展分布式锁分布式任务调度器支持CI/CD持续集成(包括前端和后端)分布式Id生成器分布式事务(强一致性/最终一致性)日志链路追踪
系统监控功能服务调用链监控应用拓扑图应用统一日志查询慢查询SQL监控应用吞吐量监控(qps、rt)服务降级、熔断监控服务限流监控微服务服务监控服务器监控redis监控mysql监控elasticSearch监控nacos监控prometheus监控
业务基础功能支撑多租户(应用隔离)高性能方法级幂等性支持RBAC权限管理,实现细粒度控制(方法、url级别)快速实现导入、导出功能数据库访问层自动实现crud操作代码生成器基于Hutool的各种便利开发工具网关聚合所有Swagger接口文档统一跨域处理统一异常处理
五、技术选型
1. 总体架构图

运行环境
工具
版本
Java
8
Maven
3.5.3
Redis
4+
Mysql
5.7+ ,8.0.14+
Elasticsearch
7.x
代码仓库
gitee
Maven镜像
阿里云镜像
IDE
强力推荐IDEA
Docker
1.13.1+
环境准备
前期准备
- maven配置阿里云镜像,修改settings.xml文件在mirrors块里添加以下内容
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
- 在idea安装lombok插件
- 在idea安装MybatisX Plugin插件(选装)
- 准备好数据库5.7+或8.0.14+
- 初始化数据库
- 脚本路径:zlt-doc/sql
- 准备好Redis
- 准备好注册中心Nacos
- 下载地址:https://github.com/alibaba/nacos/releases
- 启动命令地址:nacos\bin
- 确保机器已经有 JDK1.8 的运行环境,可以通过 java -version 命令检查
- #Windows直接运行下面的文件
- startup.cmd
- nacos2.0之后 startup.cmd 也改成默认为cluster模式了
- #Linux/Unix/Mac系统默认是集群模式,所以需要添加standalone改为单机模式
- sh startup.sh -m standalone
- 修改zlt-config/src/main/resources/application-dev.properties里面的配置参数
- 数据库配置
- redis配置
- elasticsearch配置非必须,如果不启用日志功能可不管
- sentinel配置非必须,主要是用于展示应用吞吐量
- 修改zlt-config/src/main/resources/bootstrap.properties文件里的nacos地址参数,如nacos是在本机启动的话就改为以下地址
spring.cloud.nacos.server-addr=127.0.0.1:8848

必要启动模块
必要启动模块
- 启动认证中心zlt-uaa
运行 com.central.UaaServerApp
- 启动用户中心zlt-bussiness/user-center
运行 com.central.UserCenterApp
- 启动网关zlt-gateway/sc-gateway
运行 com.central.SCGatewayApp
- 启动前端工程zlt-web/back-web
运行
com.central.web.BackWebApplication
访问系统
http://127.0.0.1:8066 admin/admin
扩展模块(可选)
- 1. 文件中心
- 2. 代码生成器
- 3. 微服务应用监控
- 4. 统一配置中心
- 5. 统一日志中心
- 6. 慢查询sql
- 7. 分布式任务调度
- 8. 服务限流、降级熔断控制台和应用吞吐量监控
- 9. APM监控
- 10. 分布式事务(tx-lcn)
- 11. 搜索中心
- 12. 首页(流量统计)
模块说明
central-platform -- 父项目,公共依赖 │ ├─zlt-business -- 业务模块一级工程 │ │ ├─user-center -- 用户中心[7000] │ │ ├─file-center -- 文件中心[5000] │ │ ├─code-generator -- 代码生成器[7300] │ │ ├─search-center -- 搜索中心 │ │ │ ├─search-client -- 搜索中心客户端 │ │ │ ├─search-server -- 搜索中心服务端[7100] │ │─zlt-commons -- 通用工具一级工程 │ │ ├─zlt-auth-client-spring-boot-starter -- 封装spring security client端的通用操作逻辑 │ │ ├─zlt-common-core -- 封装通用操作逻辑 │ │ ├─zlt-common-spring-boot-starter -- 封装通用操作逻辑 │ │ ├─zlt-db-spring-boot-starter -- 封装数据库通用操作逻辑 │ │ ├─zlt-log-spring-boot-starter -- 封装log通用操作逻辑 │ │ ├─zlt-redis-spring-boot-starter -- 封装Redis通用操作逻辑 │ │ ├─zlt-loadbalancer-spring-boot-starter -- 封装Loadbalancer和Feign的通用操作逻辑 │ │ ├─zlt-sentinel-spring-boot-starter -- 封装Sentinel的通用操作逻辑 │ │ ├─zlt-swagger2-spring-boot-starter -- 封装Swagger通用操作逻辑 │ │ ├─zlt-elasticsearch-spring-boot-starter -- 封装Elasticsearch通用操作逻辑 │ │ ├─zlt-oss-spring-boot-starter -- 封装对象存储通用操作逻辑 │ │ ├─zlt-zookeeper-spring-boot-starter -- 封装Zookeeper通用操作逻辑 │ ├─zlt-config -- 配置中心 │ ├─zlt-doc -- 项目文档 │ ├─zlt-gateway -- api网关一级工程 │ │ ├─sc-gateway -- spring-cloud-gateway[9900] │ ├─zlt-job -- 分布式任务调度一级工程 │ │ ├─job-admin -- 任务管理器[8081] │ │ ├─job-core -- 任务调度核心代码 │ │ ├─job-executor-samples -- 任务执行者executor样例[8082] │ ├─zlt-monitor -- 监控一级工程 │ │ ├─sc-admin -- 应用监控[6500] │ │ ├─log-center -- 日志中心[7200] │ ├─zlt-uaa -- spring-security认证中心[8000] │ ├─zlt-register -- 注册中心Nacos[8848] │ ├─zlt-web -- 前端一级工程 │ │ ├─layui-web -- layui前端[8066] │ │ ├─react-web -- react前端[8066] │ ├─zlt-transaction -- 事务一级工程 │ │ ├─txlcn-tm -- tx-lcn事务管理器[7970] │ ├─zlt-demo -- demo一级工程 │ │ ├─txlcn-demo -- txlcn分布式事务demo │ │ ├─seata-demo -- seata分布式事务demo │ │ ├─sharding-jdbc-demo -- sharding-jdbc分库分表demo │ │ ├─rocketmq-demo -- rocketmq和mq事务demo │ │ ├─sso-demo -- 单点登录demo
评论