一款多租户开发框架

多租户是一种软件架构技术,可以实现多个租户共享系统实例,用户间能够实现数据与行为的隔离。在开发多租户系统中我们常遇到一下问题。

租户识别

  • 如何识别租户,一般从CookieHeaderDomain,URL Path,EnvJWT中解析租户标识

租户标识传播

  • 下租户标识转播SeataFeignRestTemplate

数据隔离

  • 一般数据隔离模式主要有三种,行级别、Schema、database级别。三种模式的优缺点不过多介绍了。网上有很多资料
  • 对于schema或database级别的隔离来说,当微服务架构下。可能数据库连接数会很快达到瓶颈难以支撑大量租户。
  • 需要做Connection级别的重用
  • redis数据隔离

定制化业务逻辑

  • toB Saas 下很常见的定制化业务逻辑,如何让定制化不要侵入到标准产品中。需要租户级别的隔离

个性化配置

  • 某些租户列表展示或者过滤条件不同,需要支持配置化。

动态脚本引擎

  • 例如金额计算,易变业务规则。有可能每个租户都不一样,如何支持。

开户

  • 租户快速开户。

多租户开发框架

简介

multi-tenancy-datasource-spring-boot-starter 是一个基于springboot的多租户的开发神器. 包含了多租户场景下业务封装和组件抽象。

特性

  • 数据库隔离模型: 基于Postgresqlschemadatabase 级别隔离
  • Redis隔离模型: 为每个key增加租户前缀
  • 租户标识解析: 从Cookie, Header, Domain,URL Path,Env中解析租户标识
  • 租户标识传播: 支持Seata, Feign, RestTemplate
  • 数据源: 多个租户复用数据库Connection减少资源消耗,也可使用独立数据源
  • 租户业务执行器: 设置和释放当前线程的租户上下文
  • 动态注册租户: 基于Redis Stream在运行期注册租户
  • baseline jdk17. support Graalvm.
  • postgresql 中表DDL对比和模版Schema,方便新增租户和查看其差异
  • 扩展cola组件,抽象租户定制化配置类TenantCustomization,租户动态脚本引擎.TenantDynamicScriptExecutor满足定制化业务逻辑的开发。

github链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值