【发布时间】:2015-09-11 07:40:02
【问题描述】:
我需要一种解决方案来从一个数据库实例 (DB1) 获取整个表并在另一个数据库实例 (DB2) 上创建相同的表。之前我用的很紧,但是听说Spring Batch更适合这种情况,想试试。
那么,通过以下步骤使用 Spring Batch 作业是否可能/有意义:
- 在 DB2 上创建一个与 DB1 中的源表具有相同架构的空表。
- 从 DB1 表中选择 -> 更新 DB2 表。以防万一在步骤中出现错误 - 在 DB2 上回滚和删除表。
使用 Spring Integration 我看到了JdbcInboundChannelAdapter -> QueueChannel -> OutboundGateway 的可能解决方案,但也许 Spring Batch 可能是更好的选择?任何建议都非常感谢。
【问题讨论】:
-
为什么不简单地使用数据库呢?在 DB1 中导出并在 DB2 中导入?为什么要对应用程序这样做?
-
因为它必须是现有应用程序和服务的一部分,所以很明显。
-
速度慢且容易出错。数据库通常具有开箱即用的支持。我会首先尝试让一个 DBA 加入,它可以告诉你如何使用 SQL 轻松完成它,然后围绕它编写一个服务。不要将整个数据库拉入内存并再次存储它通常是一个坏主意,特别是如果它是一个普通副本......(恕我直言)。
-
我们有一堆基于 Java 的微服务,所以我决定创建另一个并同时学习似乎适合这种情况的 Spring Batch。
标签: spring spring-integration spring-batch