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

Quarkus:命名数据源、多租户和持久性单元

岳俊雅
2023-03-14

我有一个有两个数据源的项目,一个主数据源和一个备用数据源。我已将这些添加到应用程序中。属性,我正在使用数据库多租户方法。我有一个定制的TenantResolver实现,可以更改活动租户,我定义的唯一实体是在外部模块中。

问题很简单:保存到我的两个数据源工作正常,但是为了启动应用程序,我必须包含一个虚拟数据源:

quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=dummy

在属性文件中。否则我会得到错误:默认数据源未配置,但持久化单元“”使用它。我使用的实际数据源定义如下:

quarkus.datasource.primary.jdbc.url=jdbc:postgresql://...
quarkus.datasource.secondary.jdbc.url=jdbc:postgresql://...

给他们存钱也行。

所以问题是:我应该如何配置我的应用程序,这样我就不必包括这个虚拟数据源来避免持久性单元错误?

以下是完整的属性文件:

# Enable DATABASE approach
quarkus.hibernate-orm.multitenant=DATABASE

quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=dummy

# Primary tenant
quarkus.datasource.primary.db-kind=postgresql
quarkus.datasource.primary.username=reportinguser
quarkus.datasource.primary.password=pw123
quarkus.datasource.primary.jdbc.url=jdbc:postgresql://localhost:5432/reportingdb1

# Secondary tenant
quarkus.datasource.secondary.db-kind=postgresql
quarkus.datasource.secondary.username=reportinguser2
quarkus.datasource.secondary.password=password
quarkus.datasource.secondary.jdbc.url=jdbc:postgresql://localhost:5432/reportingdb1

共有1个答案

徐涵亮
2023-03-14

我和你有同样的问题。您可以在下面添加一行来指定默认数据源quarkus。冬眠。数据源=主要

 类似资料:
  • 有没有办法将quarkus security jpa与多个持久性单元一起使用?JpaIdentityProvider似乎直接注入了实体管理器工厂,这导致了“javax.persistence.EntityManagerFactory类型的不满意依赖”的异常。 可能有解决办法吗? 有什么建议吗? 谢谢文森特

  • 我们正在开发一个多租户应用程序。在体系结构方面,我们为业务逻辑设计了共享中间层,为数据持久性设计了每个租户一个数据库。也就是说,业务层将与每个租户的数据库服务器建立一组连接(连接池)。这意味着应用程序为每个租户维护单独的连接池。如果我们预计约有5000个租户,那么这个解决方案需要高资源利用率(每个租户的应用服务器和数据库服务器之间的连接),这会导致性能问题。 我们已经通过保持公共连接池解决了这个问

  • 问题内容: 东西没有被冲走。发生的情况的简化示例: 输出: 我不知道是否必须对Session和Transaction进行某些操作才能使数据持久化,或者这是GPar中的错误。在底层的hibernate级别发生了什么? 我希望最近创建的Person在并行闭包中可见。 问题答案: Gpars是一个多线程工具,并且在您的域类中注入的hibernate会话不是线程安全的。 尝试使用以下方法或直接调用Sess

  • 我有一个JPA应用程序正在运行,现在我想支持多租户。我喜欢使用XML而不是注释。 我有两个orm。从持久性引用的xml。xml。 我喜欢对所有实体使用相同的多租户配置:单个表,鉴别器列是tenantUserId,上下文属性是tenant。用户ID。 根据:https://wiki.eclipse.org/EclipseLink/Examples/JPA/EclipseLink-ORM.XML 是否

  • 我认为为每个租户创建一个Redis实例是一个很好的解决方案。 我有一个包含租户id和Redisendpoint的映射,这是专用于这个租户的。 地图数据如下所示:

  • 是否可以将Spring Boot配置为使用MultiTenantConnectionProvider,以便我的系统的每个客户端都连接到自己的私有数据库? 具体来说,我希望使用内置的hibernate支持多租户: http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html_single/#d5e4561 这是我想要的配置的一个例子,但我不知