你的意思是一个数据库内,业务表比如 x_order ,现在变成 x_order_000000 , x_order_000001 , x_order_000002 这样么?把租户的隔离变成表级别的隔离?
如果是这样,好像没太多人这样做,要做的话可以去修改多租户底层插件,把租户的筛选条件从字段变成表名后缀,也可以用sharding-sphere做自动分表逻辑。
一、改插件的方式
改这里:https://center.javablade.com/blade/BladeX-Tool/src/branch/master/blade-starter-tenant/src/main/java/org/springblade/core/tenant/BladeTenantInnerInterceptor.java
然后覆盖官方的 com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler 这个类里关于租户操作的逻辑
二、sharding配置的方式
看这里的文档:
你好,
1、现在数据隔离还是多库或者单表租户id处理是吗
2、多库的话就没办法做数据一起查看了是吧,3、如果多库走kafka处理业务,如何在方法指定使用哪个库进行curd
1. 现在租户id是必带的,然后支持单库、多库混合使用
2. 多库的情况,你要写一个定时任务,定期把所有租户的数据整理清洗好放到一个专门的汇总数据库,并且做一个总的查询模块,查询的时候就从这个汇总的数据库走,就不需要考虑分库的情况了。 如果数据多,你们也可以存到 es 里,从es来检索展示。
不好意思,在问下,如果不是走control层,是走kafka过来的数据,比如设备物联数据,已经知道租户编码的情况下,如果指定库做curd,有什么封装方法吗
多线程场景用 TenantUtil.use("123456", ()->{}) 这个方法可以指定租户
扫一扫访问 Blade技术社区 移动端