一、前言
前面的章节我们依次实现了MySQL、MongoDB、Redis的多租户实现方案,下面介绍一下工作流Activiti的多租户实现方案,Activiti框架本身是支持多租户的,所以本文是基于Activiti自身的多租户方案进行讲解。
二、实现方案
Activiti的多租户实现方案与数据库类似,也是分为3种,分别是共享数据库多租户、多引擎多租户和多架构多租户,下面就对下面3种方式进行简单的介绍。
2.1单引擎单数据库模式
Activiti自版本5.15起已经支持多租户功能了, 所采用的方法是共享数据库 :多个工作流引擎共有一个数据库,类似MySQL的共享Schema模式,这种模式各租户的数据都在一个数据库中,通过各数据库表中的Tenant字段来区分不同租户的数据。
这种方法的好处是部署简单,与“常规”使用Activiti引擎没有区别。 缺点是使用Activit接口的时候需要考虑Tenant字段的调用,另外,跟MySQL共享Schema的方式问题一样,多租户的数据是放在一个表里面的,数据的隔离性差,同时,当租户数量增加的时候为了性能考虑需要分库分