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

开源系统流程管理
2026-06-28 02:42 4 次浏览 • 0 次下载 0KB
「开源」前后端分离的企业级微服务多租户系统架构,快速开发平台

一、开源项目简介

基于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+

环境准备

前期准备

  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>
  1. 在idea安装lombok插件
  2. 在idea安装MybatisX Plugin插件(选装)
  3. 准备好数据库5.7+或8.0.14+
  4. 初始化数据库
  5. 脚本路径:zlt-doc/sql
  6. 准备好Redis
  7. 准备好注册中心Nacos
  8. 下载地址:https://github.com/alibaba/nacos/releases
  9. 启动命令地址:nacos\bin
  10. 确保机器已经有 JDK1.8 的运行环境,可以通过 java -version 命令检查
  11. #Windows直接运行下面的文件
  12. startup.cmd
  13. nacos2.0之后 startup.cmd 也改成默认为cluster模式了
  14. #Linux/Unix/Mac系统默认是集群模式,所以需要添加standalone改为单机模式
  15. sh startup.sh -m standalone
  16. 修改zlt-config/src/main/resources/application-dev.properties里面的配置参数
  17. 数据库配置
  18. redis配置
  19. elasticsearch配置非必须,如果不启用日志功能可不管
  20. sentinel配置非必须,主要是用于展示应用吞吐量
  21. 修改zlt-config/src/main/resources/bootstrap.properties文件里的nacos地址参数,如nacos是在本机启动的话就改为以下地址
spring.cloud.nacos.server-addr=127.0.0.1:8848

必要启动模块

必要启动模块

  1. 启动认证中心zlt-uaa
运行 com.central.UaaServerApp
  1. 启动用户中心zlt-bussiness/user-center
运行 com.central.UserCenterApp
  1. 启动网关zlt-gateway/sc-gateway
运行 com.central.SCGatewayApp
  1. 启动前端工程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