关于实现多租户系统的疑问

前提:所有需要区分多租户的表,都存在一个domain(子域)字段,这样每个租户在进行CURD时,都要根据这个domain进行筛选。

当前的思路是,利用druid的filter,重写statementExecuteBefore方法,解析当前要执行的SQL,如果目标表中含有domain字段,就自动附加一个and条件

但考虑到表连接等特殊情况,对SQL的处理比较麻烦,想请教一下有没有更好的办法。

评论区

马小酱

2019-01-28 10:29

我是多套数据库,一个主数据库,租户都存在主库里,然后根据主库里得domain判断连哪个数据库,我觉得我得方案比你得简洁,问题也更少,你那个复杂度太高

netwild

2019-01-28 11:01

@马小酱 每个租户独立数据库确实是最方便的,数据隔离效果也好,但如果是一个小系统,本身功能就不多,为每个租户单独建库感觉有点小题大做

prelove

2019-01-31 15:17

N年前公司一套系统要分多租户俺就想用DRUID来做文章,结果方案被否还被喷惨了,物理隔离还是比较更方便,简单粗暴但有效,查问题改数据各种后期维护也简单自然。

netwild

2019-02-17 19:04

@prelove 分库当然好,但成本也高啊

热门反馈

扫码入社