我正在用Grails构建一个多租户应用程序,我想保持独立的数据库。我需要在运行时动态更改url以将GORM指向不同的数据库。
我有一个前端充当平衡器,将请求分发到后端主机集群。每个后端主机运行一个Grails 2.3.5实例和一个带有多个数据库的mysql服务器(每个租户一个)。我希望动态更改数据源,以便GORM可以访问正确数据库上的域实体。
有什么想法吗?
谢啦
您可以在数据源中配置多个数据源。groovy,看看博客。
在你的域中:添加你的域可以交互的数据源,例如。,
static mapping = {
datasources(['dataSource1', 'dataSource2'])
}
或所有数据源的“全部”,例如。,
static mapping = {
datasource 'ALL'
}
然后你可以用你想要获取/设置数据的数据源名称进行查询,例如。,
def userClass = User.class
User user = userClass.dataSource1.findByName('username')
Ref:-多数据源,在grails中查询多个数据源
我们正在开发一个多租户应用程序。在体系结构方面,我们为业务逻辑设计了共享中间层,为数据持久性设计了每个租户一个数据库。也就是说,业务层将与每个租户的数据库服务器建立一组连接(连接池)。这意味着应用程序为每个租户维护单独的连接池。如果我们预计约有5000个租户,那么这个解决方案需要高资源利用率(每个租户的应用服务器和数据库服务器之间的连接),这会导致性能问题。 我们已经通过保持公共连接池解决了这个问
我想让我的web应用程序使用mongodb和spring data multitenat。 基本上,我希望将所有实体(集合)复制到不同的数据库中。然后(基于一些规则,例如登录系统的用户),我想将一些实体实例(文档)存储到正确的数据库中。 例如,我有一个名为DBNameProviderService的服务。动态返回数据库名称的getDbName()。如何使用此服务动态选择正确的数据库? 编辑 抱歉,
我想在Spring MyBatis项目中动态更改数据源属性。 问题是在Spring MyBatis集成中,我们无法在运行时动态设置数据源属性。 目前我正在使用以下代码来设置凭据: 我尝试使用UserCredentialsDataSourceAdapter选项在运行时更改密码,但我无法将用于连接的数据源对象作为MyBatis返回 我被困在这里了,我不能使用数据源元素ds来连接MyBatis。请帮我解
问题内容: 我有一个脱机的2008 sql数据库,我想联机并设置为多用户。当我执行以下命令时,使用SQL Server Management Studio-新查询窗口- 我收到此错误消息: 消息5064,级别16,状态1,行1目前无法更改数据库’mydb’的状态或选项。数据库处于单用户模式,并且当前有用户连接到该数据库。 消息5069,级别16,状态1,第1行的ALTER DATABASE语句失败
问题内容: 让我们说我需要设计一个数据库,该数据库将托管多个公司的数据。现在出于安全和管理目的,我需要确保正确隔离了不同公司的数据,但我也不想启动10个mysql进程来在10个不同的服务器上托管10个公司的数据。使用mysql数据库执行此操作的最佳方法是什么。 问题答案: 多租户数据库有几种方法。为了进行讨论,它们通常分为三类。 每个租户一个数据库。 共享数据库,每个租户一个模式。 共享数据库,共
我认为为每个租户创建一个Redis实例是一个很好的解决方案。 我有一个包含租户id和Redisendpoint的映射,这是专用于这个租户的。 地图数据如下所示: