# 项目体验地址
- 4.x企业版(数据源模式): 体验地址 (opens new window)
- 4.x企业版(字段模式): 体验地址 (opens new window)
- 4.x企业版(非租户模式): 体验地址 (opens new window)
- 3.x开源版 体验地址 (opens new window)
- 3.x开源版 体验地址 (opens new window)
# 模式区别
租户模式 | 描述 | 优点 | 缺点 |
---|---|---|---|
NONE(非租户模式) | 非租户模式:没有租户 | 简单、适合独立系统 | 缺少租户系统的优点 |
COLUMN(字段模式) | 共享数据库,共享数据架构:租户共用一个数据库,在业务表中增加字段来区分 | 简单、不复杂、开发无感知 | 数据隔离性差、安全性差、数据备份和恢复困难、 |
SCHEMA(独立schema) | 共享数据库,隔离数据架构:每个租户独立一个 数据库(schema),执行sql时,动态在表名前增加schema | 简单、开发无感知、数据隔离性好 | 配置文件中必须配置数据库的root账号、不支持复杂sql和 sql嵌套自定义函数 |
DATASOURCE(独立数据源) | 独立数据库:每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源 | 可独立部署数据库,数据隔离性好、扩展性高、故障影响小 | 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库 |
先独立数据库隔离租户,在按字段隔离门店等:每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源,在动态拼接 子租户id 二次隔离 | 可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式 | 相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库 |
注意:请勿将 租户隔离 和 数据权限 混为一谈。
# 项目名由来
在一个夜黑风高的晚上,小孩吵着要出去玩,于是和程序员老婆
一起带小孩出去放风,路上顺便讨论起项目要换个什么名字,在各自想出的名字都被对方一一否决后,大家陷入了沉思。 走着走着,在一盏路灯下,小孩指着前方的路灯打破宁静,喊出:灯灯~
我和媳妇相视一笑,然后一起说:哈哈,就用这个名字!!!
# 简介
灯灯(英文名:lamp),他是一个项目的统称,由"工具集"、"后端"、"前端"组成,她具备SaaS模式切换、完备的RBAC功能、网关统一鉴权、灰度发布、数据权限、可插拔缓存、统一封装缓存的key、表单校验前后端统一验证、字典数据自动回显、Xss防跨站攻击、自动生成前后端代码、多种存储系统、分布式事务、分布式定时任务等多个功能和模块, 支持多业务系统并行开发, 支持多服务并行开发,是中后台系统开发脚手架的最佳选择。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
核心技术采用Spring Cloud Alibaba、SpringBoot、Mybatis、Seata、Sentinel、RabbitMQ、FastDFS/MinIO、SkyWalking等主要框架和中间件。
希望能努力打造一套从 Web基础框架
- 分布式微服务架构
- 持续集成
- 系统监测
的解决方案。本项目旨在实现基础框架能力,不涉及具体业务。
lamp包含以下几个子项目:
# 工具集
项目 | gitee | github | 备注 |
---|---|---|---|
lamp-util | lamp-util (opens new window) | lamp-util (opens new window) | 核心工具集 |
lamp-generator | lamp-generator (opens new window) | lamp-generator (opens new window) | 代码生成器 |
lamp-job | lamp-job (opens new window) | lamp-job (opens new window) | 分布式定时调度器 |
# 后端
项目 | gitee | github | 备注 |
---|---|---|---|
lamp-cloud | lamp-cloud (opens new window) | lamp-cloud (opens new window) | SpringCloud(微服务)版 |
lamp-boot | lamp-boot (opens new window) | lamp-boot (opens new window) | SpringBoot(单体)版 |
微服务版示例 | lamp-samples (opens new window) | lamp-samples (opens new window) | 常用示例 |
# 前端
项目 | gitee | github | 备注 | 演示地址 |
---|---|---|---|---|
lamp-web | lamp-web (opens new window) | lamp-web (opens new window) | 基于 vue-admin-element (element-ui) | https://boot.tangyh.top/lamp-web (opens new window) |
lamp-web-plus(强烈推荐!👏👏👏) | lamp-web-plus (opens new window) | lamp-web-plus (opens new window) | 基于 vue-vben-admin (vue 3 + ant design vue 2) | https://pro.tangyh.top (opens new window) |
# 开源协议
Apache Licence 2.0 Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。 需要满足的条件如下:
- 需要给代码的用户一份Apache Licence
- 如果你修改了代码,需要在被修改的文件中说明。
- 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
- 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
- 若你借鉴或学习了本项目的源码,请你在你的项目源码和说明文档中显著的表明引用于本项目,并附上本项目的github访问地址: https://github.com/zuihou/lamp-cloud