Tag: 多租户

一个JVM中有多个独立的H2数据库

是否可以在JVM中启动和关闭多个H2数据库? 我的目标是通过为每个用户/帐户提供自己的数据库来支持多租户 。 每个帐户的数据都很少。 账户之间的数据永远不会被一起访问,比较或分组; 每个帐户与其他帐户完全分开。 每个帐户只能每天访问一次或每月访问几次。 因此,在单个数据库中将数据存储在一起的优势很少,并且存在一些严重的缺点。 所以我的想法是,当用户登录特定帐户时,该帐户的数据库将被加载。 当该用户注销或其Web应用程序会话( Vaadin应用程序)超时时,该帐户的数据库将关闭,它的数据将刷新到存储,并可能执行备份。 这种打开和关闭将同时发生在任意数量的数据库中。 优点包括最大限度地减少任何时候使用的内存量,以缓存数据和索引,最大限度地减少锁定和其他争用,并允许平滑扩展。 我是H2的新手,所以我不确定它的架构是否可以支持这个。 我要求拒绝或确认此function,以及任何提示或警告。

具有Hibernate 4.0和独立模式方法的MultiTenancy

我使用EJB 3.0和Hibernate 4和PostgreSQL作为我的数据库服务器来创建多租户系统,其中每个租户将具有单独但相同的架构。 我还处于试用阶段,我有3个方案public , company1 , company2都有一个单人桌。 现在我想要做的是根据用户在运行时更改模式,以便他只能查看他/她公司的数据。 这是我的示例代码:实体对象: package com.neebal.domain; import java.io.Serializable; import java.lang.Long; import java.lang.String; import javax.persistence.*; import org.eclipse.persistence.annotations.Multitenant; import org.eclipse.persistence.annotations.MultitenantType; @Entity //@Table(schema = “company1”) public class Person implements Serializable { @Id private Long id; private String name; private static final long serialVersionUID = 1L; public Person() { super(); } public Long […]

基于Java(GWT,Spring,Hibernate)Web应用程序的SaaS /多租户方法

我目前正在考虑将使用Spring,GWT,Hibernate,Jackrabbit,Hibernate Search / Lucene(以及其他)的单租户基于Java的Web应用程序转换为完全成熟的SaaS风格应用程序。 我偶然发现了一篇文章,强调了以下7个“事物”作为对单个租户应用程序进行重要更改以使其成为SaaS应用程序: 该应用程序必须支持多租户。 该应用程序必须具有一定程度的自助注册。 必须有一个订阅/计费机制。 应用程序必须能够有效扩展。 必须具备监视,配置和管理应用程序和租户的function。 必须有一种机制来支持唯一的用户识别和身份validation。 必须有一个机制来支持每个租户的某种程度的定制。 我的问题是,是否有人使用与我列出的类似技术在SaaS /多租户应用程序中实现上述任何内容? 在我走上正在考虑的道路之前,我渴望得到关于最佳方法的尽可能多的意见。 作为一个开始,我很确定我能够很好地处理如何在模型级别处理多个租户。 我想在我们的所有表中添加一个租户ID,然后使用Hibernatefilter(以及Hibernate Search的全文filter)根据所有查询的登录用户的租户ID进行过滤。 然而,我对性能也有一些担忧,特别是当我们的租户数量增长很多时。 任何有关如何实施此类解决方案的建议都将受到高度赞赏(如果这个问题有点过于开放,我会道歉)。

在多个客户域上运行Google App Engine应用程序

我想让我公司的客户将我们的Google App Engine应用程序集成到他们的域中。 例如,假设一个客户拥有域名coolcustomer.com并希望在service.coolcustomer.com访问我们的应用程序。 本文讨论如何在内部设置多租户,但未提及如何将客户端域与应用程序关联。 理想情况下,我希望允许客户以自助服务方式关联子域。 当然,这会带来validation客户是否有权将子域添加到域名的问题。 实现这一目标的最佳方法是什么?