一、该问题的重现步骤是什么?
1. 目前平台的多库多表无法用管理租户跨库看到所有数据
2. 单表租户不好
3.是否可以单库多表,这样数据上分表,管理也可以合并,目前平台有整和这个功能吗,还是要自己处理,有什么技术方案
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
你的意思是一个数据库内,业务表比如 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技术社区 移动端