多租户数据隔离方案实践( 四 )

 

多租户数据隔离方案实践

文章插图
 
至此,我们就完成了多租户数据隔离的改造 。
四、总结一下,改造的地方:
  1. 业务表没有租户字段(companyId)的,统一加上company_id字段 。
  2. 利用Mybatis拦截器,拦载所有的select 、insert、update、delete语句进行改造SQL,自动添加company_id字段及字段值 。
  3. 利用Transmittable ThreadLocal,进行companyId值的传递 。
  4. 对于http远程调用的,通过拦截器,发送端统一添加companyId字段到header,接收端通过OncePerRequestFilter从header取得统一设到ThreadLocal 。
  5. 对消息队列(Kafka),发送端统一处理,添加companyId字段到message header,消费端通过RecordFilter从header取得统一设到ThreadLocal 。




推荐阅读