【问题标题】:What is the difference between spring-integration and spring-batch projects?spring-integration 和 spring-batch 项目有什么区别?
【发布时间】:2019-07-31 13:10:08
【问题描述】:

我发现有3个项目:

我不明白spring-integrationspring-batch 之间的区别。我知道 Spring Batch 是关于批处理、关于多步骤作业、关于分区、统计、异常处理的,如果我们在 2GB CSV 文件的中间失败,我们以后可以从那个地方继续。

我尝试在谷歌上搜索一些 Spring Batch 的示例,并找到了读写器完全不同的示例(文件、数据库、消息队列、sftp 文件等)

我最初认为 spring 集成是一组方便的连接器,用于连接不同的端点,如文件、数据库、消息队列、sftp 文件等,但看起来 spring batch 可以做到。

您能否提供任何使用 Spring Batch 和 Spring Integration 的用例以及我何时使用它们?

【问题讨论】:

  • Spring Integration 是关于组件和进程之间的消息传递。 Spring Batch 是关于批量提交工作的可分割部分。 “spring batch integration”不是一个项目,只是建议如何一起使用这两个项目。
  • Spring Integration 是使用 Spring 框架在 Java 中实现 Enterprise Integration Patterns

标签: java spring spring-integration spring-batch


【解决方案1】:

Spring Batch 用于启动作业和编写批处理应用程序,Spring Integration 是另一个项目(如文档中所述)用于在基于 Spring 的应用程序中启用轻量级消息传递并支持通过声明性适配器与外部系统集成.

所以基本上这是两个完全不同的项目,每个项目都设计为在不同的级别上处理/操作,并且用于另一个无法处理的不同类型的需求,那就是为什么spring-batch-integration 的设计目的是允许同时使用这两个项目并从这两个项目中获利并满足相同的要求。

您可以在Spring Batch Integration Introduction section of the Docs 中看到它说:

Spring Batch 的许多用户可能会遇到超出Spring Batch 范围的需求,但可以通过使用Spring Integration 高效而简洁地实现这些需求。相反,Spring Integration 用户可能会遇到Spring Batch 需求,并且需要一种有效集成这两个框架的方法。在这种情况下,出现了几种模式和用例,Spring Batch Integration 满足了这些要求

关于您需要同时使用两个项目的用例示例,我们可以面对几个类似的需求,您可以考虑一个批处理作业,它需要在其中一个步骤中解决 Spring 集成流程,甚至是需要启动 Spring 批处理作业的 Spring 集成流程。

【讨论】:

    【解决方案2】:

    Spring Integration 和 Spring Batch 是不同的项目,目标不同

    spring-batch-integration(spring-batch 的一部分)具有允许您从 Spring Integration 消息流启动批处理作业的组件,以及配置批处理作业以将工作(批处理作业的一部分)分配给使用“远程分块”或“分区”的多个“工作节点”。

    我建议你阅读Spring Batch and Spring Integration documentation

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2019-04-18
      • 2014-06-12
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多