Grails多租户与多数据库

5

1
多租户插件已经过时,使用的是Hibernate 3。我有一个基于单个db插件的Grails 2.3应用程序。每个租户插件更加过时。然而,Hibernate 4内置了对基于每个租户和模式的多租户的支持。您可以拦截gorm调用并使用AST转换来实现此目的。但这是一项耗时的工作。您将不得不阅读Hibernate文档。 - Ejaz Ahmed
@renz,你找到解决方案了吗? - lifeisfoo
@lifeisfoo 我使用了单数据库方法,更加简单。https://grails.org/plugin/multi-tenant-single-db,不过我降级到了Hibernate 3。 - renz
1
@renz 我进一步探索了Hibernate4,并将我的grails 2.3应用程序移植到grails 3。我基于我的工作为grails3创建了多租户插件。 - Ejaz Ahmed
@EjazAhmed 很好。你应该在grails.org上发布它 :) 不过我不能使用它,因为将我的应用程序移植到grails 3不会很快发生。 - renz
显示剩余3条评论
1个回答

3
Grails将许多Hibernate内容抽象出来,因此Gorm和Hibernate之间存在阻抗不匹配的问题。其中一个问题是基于租户加载多个数据源。如果您采用每个数据库策略,请准备好进行艰苦的战斗。除了涉及的复杂性外,这种策略在DB维护方面也需要付出很高的代价。大多数现代应用程序使用单个DB单个模式方法,我也在我的插件中使用了这种方法。目前,该插件使用Spring Security解析租户。采用这种方法的原因是我正在开发的应用程序是SaaS应用程序,要从单个域提供服务。如果您必须从多个域提供服务,则需要对此插件进行轻微修改。

关于迁移到Grails3,它于2015年3月发布,经过一年的时间,它经历了各种改进和错误修复。它足够稳定可靠,并且几乎所有必要的插件都已经移植。如果您正在构建新应用程序,您必须选择Grails3。如果您有现有的应用程序,可以考虑迁移到Grails3。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接