在mongodb和gorm的背景下,如果我们需要为不同的客户拥有不同的数据库,那么多租户(采用数据库模式)和多数据源方法是实现同一目标的两种解决方案,还是两者之间有什么区别?
多数据源解决方案:http://gorm.grails.org/latest/mongodb/manual/#multipleDataSources
多租户解决方案:http://gorm.grails.org/latest/mongodb/manual/#multiTenancy
发布于 2016-10-25 13:39:37
他们不是为了达到同样的目的
多数据源意味着对不同的对象具有不同的数据库(如果您只计划使用mongodb),而多租户将存储相同的对象,但添加一个鉴别器来标识客户端特定的数据。
如果您的问题是为不同的客户端支持不同的数据库,那么答案将是多租户。
多数据源
Grails支持同一个应用程序拥有多个数据库(可以是不同的db供应商,也可以是来自同一供应商的不同数据库)。其目的是将特定数据存储在不同的db/命名空间中。
例如,您可以决定为您的业务的所有核心实体创建一个db,并为所有审计/日志记录设置专用的db。当使用多个数据源时,您将将一个对象映射到专用数据源。
多租户(根据OP上下文与数据库租户)
另一方面,在mutli租赁(数据库租户)中,grails将有一个数据库模式供您的客户端存储所有对象。因此,来自客户端A的数据将位于另一个db中,而不是客户机B。Grails将有一些默认的租户解析器(如果需要,您仍然可以重写该解析器),它将设法根据上下文确定需要查询哪个数据库。
https://stackoverflow.com/questions/40239534
复制相似问题