当前位置: 首页 > 知识库问答 >
问题:

Grails:在运行时更改数据源url以实现多租户数据库分离

皇甫文乐
2023-03-14

我正在用Grails构建一个多租户应用程序,我想保持独立的数据库。我需要在运行时动态更改url以将GORM指向不同的数据库。

我有一个前端充当平衡器,将请求分发到后端主机集群。每个后端主机运行一个Grails 2.3.5实例和一个带有多个数据库的mysql服务器(每个租户一个)。我希望动态更改数据源,以便GORM可以访问正确数据库上的域实体。

有什么想法吗?

谢啦

共有1个答案

周昊乾
2023-03-14

您可以在数据源中配置多个数据源。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的映射,这是专用于这个租户的。 地图数据如下所示: