lamp-cloud 3.7.0 发布,专注多租户解决方案


3.7.0 版本更新详情:

build

  1. 依赖升级
  2.    spring-boot 2.6.8
       spring-cloud-dependencies.version>2021.0.2
       spring-boot-admin.version>2.6.7
       hutool.version>5.8.1
       fastjson.version>1.2.83
  3. 拆分boot模块为 boot和mvc模块
  4. 将annotation模块中的部分model移动到core模块
  5. 删除废弃的RemoteData和相关代码
  6. 将代码中的字符串lamp替换为常量

feat

  1. 用户和岗位表新增创建人所属机构字段,并在新增数就是给与赋值

refactor

 

  • 1. swagger version 调整到 bootstrap.yml 中
  • 2. 废弃lamp-util项目中的lamp-security-starter模块(lamp-security-sdk + lamp-userinfo-sdk = lamp-security-starter模块)
  • 3. 新增lamp-security-sdk模块
  • 4. 新增lamp-userinfo-sdk模块
  • 5. 重构lamp-data-scope-sdk模块,使其解耦不在依赖业务服务的模块
  • 6. 新增lamp-model模块,用于存放业务相关的公共实体和VO
  • 7. 重构lamp-tenant-datasource-init模块,使其解耦
  • 8. 废弃lamp-tenant-datasource模块
  • 9. Echo 重命名为 EchoApi
  • 10. DictionaryType 重命名为 EchoDictType
  • 11. 优化lamp-cloud项目依赖,便于各个服务能独立编译。编译顺序为:lamp-dependencies 、lamp-public 、 lamp-authority、 lamp-msg、lamp-file、lamp-tenant、lamp-oauth
  • 12. @DS("#thread.tenant")修改为@DS(DsConstant.BASE_TENANT)、@DS(DsConstant.EXTEND_TENANT)
  • 13. 新增租户时,表结构和初始数据 脚本调整
  • 14. tenant服务 和 msg服务 启动时,默认连接2个库
  • 15. 调整sql适配3.x的表结构
  • 16. 优化机构管理页面布局
  • 17. 优化角色资源维护页面显示是否默认数据权限标识

fix

  1. 修复升级导致的序列化规则失效导致的bug
  2. 枚举类型空字符串时,报错的bug
  3. 修复机构类型枚举参数和字典值不匹配
  4. 修复角色资源维护页面可正常显示资源类型

 

《灯灯》中后台快速开发平台

lamp 项目组成

1) 工具集 ( lamp-util 项目必备,其他 2 个可选)

项目 gitee github 备注
工具集 lamp-util lamp-util 业务无关的工具集,cloud 和 boot 项目都依赖它
代码生成器 lamp-generator lamp-generator 给开发人员使用
定时调度器 lamp-job lamp-job 尚未开发

2) 后端 (下面 2 个项目功能一致,任选其一即可)

项目 gitee github 备注
微服务版 lamp-cloud lamp-cloud SpringCloud 版
单体版 lamp-boot lamp-boot SpringBoot 版 (和 lamp-cloud 功能基本一致)
示例项目 lamp-samples lamp-samples 微服务版的示例功能

3) 前端 (下面 3 个项目功能一致,任选其一即可)

项目 gitee github 备注
租户后台 lamp-web lamp-web 基于 vue-admin-element 开发 (vue2.x)
租户后台 (强烈推荐!👏👏👏) lamp-web-plus lamp-web-plus 基于 vue-vben-admin 开发 (vue3.x)

如果你非要说 lamp 是 Linux+Apache+MySQL+PHP,那就算是吧,毕竟 PHP 是世界上最好的语言,我也希望此项目成为世界上最好的后台框架!😈😈😈

lamp-cloud 简介

lamp-cloud 的前身是 zuihou-admin-cloud,从 3.0.0 版本开始,改名为 lamp-cloud,它是 lamp 项目的其中一员。

lamp-cloud 基于 jdk11/jdk8 + SpringCloud + SpringCloudAlibaba+ SpringBoot 的微服务快速开发平台,其中的可配置的 SaaS 功能尤其闪耀, 具备 RBAC 功能、网关统一鉴权、Xss 防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。

核心技术采用 Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking 等主要框架和中间件。 希望能努力打造一套从 JavaWeb基础框架 - 分布式微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。

lamp 租户模式介绍

本项目可以通过配置,轻松切换项目的 多租户实现方式

租户模式 描述 优点 缺点
NONE (非租户模式) 没有租户 简单、适合独立系统 缺少租户系统的优点
COLUMN (字段模式) 租户共用一个数据库,在业务表中增加字段来区分 简单、不复杂、开发无感知 数据隔离性差、安全性差、数据备份和恢复困难、
SCHEMA (独立数据库) 每个租户独立一个 数据库 (schema),执行 sql 时,动态在表名前增加 schema 简单、开发无感知、数据隔离性好 配置文件中必须配置数据库的 root 账号、不支持复杂 sql 和 sql 嵌套自定义函数
DATASOURCE (独立数据源) 每个租户独立一个数据源,执行代码时,动态切换数据源 可独立部署数据库,数据隔离性好、扩展性高、故障影响小 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库
SCHEMA_COLUMN (独立数据库 + 字段模式) 每个租户独立一个 数据库,执行代码时,先动态切换数据源,在动态拼接 子租户 id 进行二次隔离 简单、开发无感知、数据隔离性好、支持大租户小门店形式 配置文件中必须配置数据库的 root 账号、不支持复杂 sql 和 sql 嵌套自定义函数
DATASOURCE_COLUMN (独立数据源 + 字段模式) 每个租户独立一个 数据库 (数据源),执行代码时,动态切换数据源,在动态拼接 子租户 id 二次隔离 可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库

lamp 项目演示地址

  • 后端使用 lamp-cloud-plus,前端使用 lamp-web-plus。演示地址: https://tangyh.top
  • 后端使用 lamp-cloud-plus,前端使用 lamp-web。演示地址: https://tangyh.top/lamp-web
  • 后端使用 lamp-boot-plus, 前端使用 lamp-web-plus。演示地址: https://boot.tangyh.top
  • 后端使用 lamp-boot-plus, 前端使用 lamp-web。演示地址: https://boot.tangyh.top/lamp-web

演示地址账号:

  • 平台管理员: lamp_pt/lamp (内置给公司内部运营人员使用)
  • 超级管理员: lamp/lamp
  • 普通管理员: general/lamp
  • 普通账号: normal/lamp

ps: 演示环境中内置租户没有写入权限,若要在演示环境测试增删改,请使用 lamp_pt 账号查询租户管理员账号后,登录新租户测试

lamp-cloud 技术栈 / 版本介绍:

  • 所涉及的相关的技术有:
    • JSON 序列化:Jackson
    • 消息队列:RabbitMQ
    • 缓存:Redis
    • 数据库: MySQL 5.7.9 或者 MySQL 8.0.19
    • 定时器:采用 xxl-jobs 项目进行二次改造
    • 前端:vue + element-ui
    • 持久层框架: Mybatis-plus
    • 代码生成器:基于 Mybatis-plus-generator 自定义
    • API 网关:Gateway/zuul
    • 服务注册 & 发现和配置中心: Nacos
    • 服务消费:OpenFeign
    • 负载均衡:Ribbon
    • 服务熔断:Hystrix
    • 项目构建:Maven
    • 分布式事务: seata
    • 分布式系统的流量防卫兵: Sentinel
    • 监控: spring-boot-admin
    • 链路调用跟踪: zipkin/SkyWalking
    • 文件服务器:FastDFS 5.0.5 / 阿里云 OSS / 本地存储 / MinIO
    • Nginx
  • 部署方面:
    • 服务器:CentOS
    • Jenkins
    • Docker
    • Kubernetes

 

项目截图:

预览 预览
预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png
预览.png 预览.png

相關推薦

2023-08-19

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2024-06-06

台,支持 jdk17、jdk11和jdk8,专注于多租户 (SaaS 架构) 解决方案,亦可作为普通项目(非 SaaS 架构)的基础开发框架使用,目前已实现 数据库隔离、字段隔离 等租户隔离方案以及非租户隔离的解决方案。 她拥有自研 R

2024-06-28

台,支持 jdk17、jdk11和jdk8,专注于多租户 (SaaS 架构) 解决方案,亦可作为普通项目(非 SaaS 架构)的基础开发框架使用,目前已实现 数据库隔离、字段隔离 等租户隔离方案以及非租户隔离的解决方案。 她拥有自研 R

2024-10-17

套微服务版),且保持代码同步的难度大,工作量大! 解决方案: 《灯灯》5.0.0 版本开始,将原来的 lamp-cloud 项目和 lamp-boot 项目合并为一个项目,合并后的项目同时支持采用单体版的方式启动,也同时支持微服务版的方式启

2024-09-28

套微服务版),且保持代码同步的难度大,工作量大! 解决方案: 《灯灯》4.22.0版本开始,将原来的lamp-cloud项目和lamp-boot项目合并为一个项目,合并后的项目同时支持采用单体版的方式启动,也同时支持微服务版的方式启动

2024-01-17

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2024-03-05

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2024-04-04

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2023-09-09

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2023-01-18

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2023-12-29

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2023-12-08

微服务架构 - 持续集成 - 系统监测 的解决方案。本项目旨在实现基础能力,不涉及具体业务。 lamp 租户模式介绍 本项目可以通过配置,轻松切换项目的 多租户实现方式。 租户模式 描述 优点

2022-08-16

布式微服务架构 - 持续集成 - 系统监测的解决方案。本项目旨在实现基础能力,不涉及具体业务。 技术栈 开发方面: JSON 序列化:Jackson 消息队列:RabbitMQ 缓存:Redis 数据库: MySQL 5.7.9 或者 MySQL 8.0.19

2022-10-12

系统监控:接口文档、服务监控、SkyWalking 监控等 2.1.6 发布特性: 一键同步功能点 字典新增是否停用 字典类型去掉多租户模式 字典支持国际化 新增接口功能点拦截 新增LoaderService注解,实现自动生成接口实现类配