跳至主要內容

简介

大约 3 分钟简介简介

企业版用户,请查看本文档,本文档需要配合企业版4.x系列的数据源模式、字段模式进行阅读。

开源版open in new window源代码请查看开源版文档

本文档的密码需要购买企业版后方可获取。

一、名字由来

在一个夜黑风高的晚上,小孩吵着要出去玩,于是,我和程序员老婆一起带小孩出去遛弯。路上讨论给项目改名,在双方想出的名字都被对方否决后,我俩都陷入了沉思。走着走着,走到一盏路灯下,小孩指着路灯打破宁静,喊出“灯灯~灯灯~” ,我和媳妇愣了一下,然后对视一眼,一同说道:“哈哈,这个名字好”

二、项目简介

她是基于 jdkSpringCloudSpringBoot 开发的微服务中后台快速开发平台,专注于多租户 (SaaS架构) 解决方案,亦可作为普通项目(非SaaS架构)的基础开发框架使用,目前已实现大租户嵌套小租户隔离数据库隔离字段隔离无租户隔离 等几种模式。

她拥有RBAC、网关统一鉴权、Xss防跨站攻击、代码自动生成、多种存储系统、分布式事务、分布式定时任务等功能,支持多业务系统、多服务并行开发,可以作为Java Web项目的开发脚手架。代码优美,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。

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

三、项目组成

灯灯(简称灯, 英文名:lamp),她是一个项目集,由工具集后端前端组成,如图:

为满足高内聚低耦合设计原则,将一个大项目拆解为以下几个子项目:

工具集

项目Gitlab备注
lamp-utillamp-util-proopen in new window核心工具集
lamp-joblamp-job-proopen in new window分布式定时调度器

后端

项目datasource模式(gitlab)column模式(gitlab)none模式(gitlab)备注
lamp-cloudlamp-cloud-proopen in new windowlamp-cloud-proopen in new windowlamp-cloud-proopen in new window微服务版
lamp-bootlamp-boot-proopen in new windowlamp-boot-proopen in new windowlamp-boot-proopen in new window单体版

前端

项目gitee备注演示地址
lamp-web-prolamp-web-proopen in new window基于 vue-vben-admin (vue 3 + ant design vue 3)https://datasource.tangyh.topopen in new window
lamp-web-pro-soybeanlamp-web-pro-soybeanopen in new window基于 soybean-admin (soybean-admin、fast-crud、vxe-table)https://soy-datasource.tangyh.topopen in new window

四、lamp 租户模式介绍

灯灯可以使用租户模式和非租户模式,其中租户模式支持独立数据库(DATASOURCE模式)、共享数据架构(COLUMN模式)。

租户模式描述优点缺点对应的后端项目
NONE
非租户模式
没有租户简单、适合独立系统缺少租户系统的优点lamp-cloud-pro-none
lamp-boot-pro-none
lamp-cloud
lamp-boot
COLUMN
字段模式
租户共用一个数据库,在业务表中增加字段来区分简单、不复杂、开发无感知数据隔离性差、安全性差、数据备份和恢复困难、lamp-cloud-pro-column
lamp-boot-pro-column
DATASOURCE
独立数据源
每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源可独立部署数据库,数据隔离性好、扩展性高、故障影响小相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库lamp-cloud-pro-datasource-column
lamp-boot-pro-datasource-column
DATASOURCE_COLUMN
独立数据源+字段模式
每个租户独立一个 数据库(数据源),执行代码时,动态切换数据源,在动态拼接 子租户id 二次隔离可独立部署数据库,数据隔离性好、扩展性高、故障影响小、支持大租户小门店形式相对复杂、开发需要注意切换数据源时的事务问题、需要较多的数据库lamp-cloud-pro-datasource-column
lamp-boot-pro-datasource-column

五、演示地址

👆🏻👆🏻👆🏻上面是评论区,对系统、本页文档什么疑问,可以在评论区留言。
❗️❗️❗️若评论区无法显示,请使用"手机热点"或"科学上网"。