Skip to content

SaasApp base in SpringSecurity (基于security设计的多数据源saas系统)

Notifications You must be signed in to change notification settings

hints0816/auth-saas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于Oauth2实现的SAAS系统方案

项目地址:github

平台功能

服务 使用技术 进度 备注
用户管理 自开发 用户管理
租户管理 自开发 租户管理
订单管理 自开发 订单的审核和查询
商品管理 自开发 管理员自定义组合菜单模块和插件形成商品
基地管理 自开发 用户在成为租户后,可以对自己公司进行基地或者子公司的划分
插件管理 自开发

概念:

租户:购买SAAS服务的用户 用户:租户下的用户,真正使用产品的人 子公司/基地:租户下的子公司,多个子公司间数据也是隔离

方式:

用户注册的方式: 1、用户属于平台,用户自己在SAAS平台注册,由租户直接邀请注册等 2、用户属于租户,用户通过租户系统注册

应用架构:

单应用:不会有第三方,通过对一个应用划分版本来分配给租户。 多应用:租户按模块订阅应用(飞书),或者自定义模块,这里其实就是商品的概念。

资源

多个模块销售,其实就是对资源的分配。

资源的分配方式一般来说是菜单的分配,或者是按钮功能的分配。

资源的划分:模块划分,时间量划分

通用架构

在这里插入图片描述

架构

租户数据隔离方案:

通过Oracle数据库的用户间Schema的隔离实现数据隔离,每个租户为一个数据库用户。

分布式同步数据源方案:

消息队列实现分布式间数据源的同步 在这里插入图片描述

瓶颈

共享数据库,独立Schema

该方式是所有的租户共用一个数据库服务,但是每个租户使用数据库不同的Schema进行隔离,逻辑上的数据隔离,并不是完全的物理上的隔离,可以支持较多的租户,但是由于使用的是一个数据库服务,一旦出现故障,恢复比较困难,并且会影响到其他租户的数据。

About

SaasApp base in SpringSecurity (基于security设计的多数据源saas系统)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages