Java EE 6中的多租户支持

The*_*heo 15 java java-ee multi-tenant java-ee-6

我有一个现有的Java EE 6应用程序(部署在Glassfish v 3.1中),并且希望支持多个租户.我目前在我的应用程序中使用的技术/ API是

  • EJB(包括EJB计时器服务)
  • JPA 2.0(EclipseLink)
  • JSF 2.0
  • JMS
  • JAX-RS
  • 我也计划使用CDI

据我所知,添加多租户支持仅影响持久层.我的问题:以前有人这样做过吗?转换应用程序的步骤是什么?这会影响除持久性以外的其他层吗?

因此,将有大量租户,所有数据将驻留在相同的数据库架构中.

Ale*_*ühl 0

请告诉我们不同租户所需的数量以及分离和定制的程度。

如果您的租户数量较少,我建议创建一个可定制的“白标”产品。这使您有机会为一个租户创建一些特定的东西,而不会使事情变得过于复杂。另外,将每个租户的应用程序分开可以帮助您进行维护。我们为具有少数不同租户的产品执行了此操作。

如果你有很多租户,这当然不再实用。我们做了同一产品的通用版本。我们所做的就是在登录后通过 id 来区分租户,从而将数据与其他租户分开。但是,在更改应用程序或其中的层方面仍然没有什么可做的,id 就是分离数据所需的全部,并且工作流通过具有不同的 bean 实例或其他托管对象来自动分离。