首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Spring JPA的多租户

使用Spring JPA的多租户
EN

Stack Overflow用户
提问于 2012-03-15 18:32:07
回答 2查看 5.9K关注 0票数 3

我正在寻找适用于我的web应用程序的多租户解决方案。我想实现一个具有独立架构模型的应用程序。我正在考虑每个会话都有一个数据源。为了做到这一点,我将数据源和实体管理器放在了会话作用域中,但这并不起作用。我正在考虑在用户输入用户名、密码和tenantId时加载data-access-context.xml(包括数据源和其他存储库bean)文件。我想知道这是不是一个好的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-15 18:38:16

多租户是一个有点棘手的问题,它必须在JPA提供程序端处理,所以从客户端代码的角度看,几乎没有什么变化。eclipselink支持多租户(参见:EclipseLink/Development/Indigo/Multi-Tenancy),hibernate最近才添加了它。

另一种方法是使用AbstractRoutingDataSource,请参阅:Multi tenancy in Hibernate

使用会话作用域的风险太大了(而且最终会有数千个数据库连接,每个会话/用户只有很少的连接。最后,EntityManager和底层数据库连接是不可序列化的,因此您无法正确迁移会话和扩展应用程序。

票数 2
EN

Stack Overflow用户

发布于 2012-09-11 03:29:20

我使用过许多多租户系统。这里的挑战是你如何保持

  1. 开放式体系结构和
  2. 提供了可随您的业务发展而发展的解决方案。

让我们先来看看第二个挑战。多租户系统的发展趋势是,您需要支持不同容量(例如https://bugs.eclipse.org/bugs/show_bug.cgi?id=355458)的多个租户可以访问相同数据(记录)的用例。因此,系统最终需要访问控制列表。

为了保持开放架构,您可以按照标准(如JPA)编写代码。使用EclipseLink或Hibernate编码让我很不舒服。

Spring Security ACL为这两个挑战提供了非常灵活的社区支持的解决方案。试一试。我这样做了,并对它的性能感到满意。然而,我必须提醒你,我花了一些时间才弄明白这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9717928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档