Spring 批量多租户

问题描述 投票:0回答:1

实现多租户 Spring Batch 应用程序。两种选择:

  1. 全局批处理作业数据库和多租户数据数据库。
  2. 共置多租户批处理作业和数据数据库表。

我可以通过添加一个 JobExecutionListener 在 Spring Batch 作业中实现多租户工作,该 JobExecutionListener 能够设置租户并使用 TenantRoutingDataSource (AbstractRoutingDataSource) 作为数据数据库本身。 这意味着作业数据库和数据数据库是不同的。我们是否需要像 Atomikos 这样的 JTA 分布式事务管理器来确保事务边界的正确性?

另一种选择是将作业和数据表放在同一个数据库中。在没有初始化 JobRepository 的情况下,我们如何启动这样的作业?

spring-batch multi-tenant
1个回答
0
投票

这意味着作业数据库和数据数据库是不同的。我们是否需要像 Atomikos 这样的 JTA 分布式事务管理器来确保事务边界的正确性?

是的,由于资源不是共置的,因此您需要一个分布式事务管理器。

另一种选择是将作业和数据表放在同一个数据库中。在没有初始化 JobRepository 的情况下,我们如何启动这样的作业?

我猜“初始化的 JobRepository”是指创建表。答案是否定的,您需要在启动第一个作业之前创建表。您可以手动执行此操作,或者如果您使用 spring Boot,请指示 Spring Boot 为您执行此操作。然后,Spring Batch 将设法创建启动的第一个作业的元数据,没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.