弹簧批的优点

时间:2014-11-14 11:46:48

标签: spring spring-batch

我知道spring批处理框架以块的形式处理数据。但是,我在想,当通过java实现相同的分块功能时,为什么我们需要使用批处理框架。

有没有人可以告诉我是否有更多理由可以进入春季批处理框架?

1 个答案:

答案 0 :(得分:57)

让我稍微改一下你的问题,看看是否能解决这个问题。

Spring Batch提供了什么,我在构建批处理应用程序时必须自己处理?

Spring Batch作为JSR-352(java批处理规范)的基础,并且由于该规范已经出现,现在Java空间中有很多Spring Batch可用。话虽如此,Spring Batch仍然提供了很多基本Java所做的范围:

在" basic"批量工作

在简单批处理作业的范围内,Spring Batch提供了一系列在所有企业垂直行业中经过实战测试的实用程序和实现。一些例子是:

  • 超过17个ItemReader和15个ItemWriter实现,涵盖了输入和输出的大量选项(文件,JDBC,NoSQL,JMS等)。所有这些都提供了声明式I / O选项,因此您不必为有状态的读者和作者编写和测试代码。
  • Tasklet(Spring Batch等同于JSR-352' s Batchlet)实现的集合,包括用于执行shell命令和与Hadoop连接的实现。
  • 能够停止/启动/重启作业并在执行之间保持状态。
  • 能够在处理记录时跳过并重试记录。
  • 交易管理。 Spring Batch为您处理事务。
  • 通过集成Spring Integration,通过消息发生错误时通知其他系统的能力。
  • 基于Java或XML的配置。
  • 所有Spring功能,如DI,AOP,可测试性等。
  • 供应商独立性 - 通过使用Spring Batch,您可以使用开源的框架,而不是绑定到任何一个供应商。

其他优势

除了Spring Batch带来的上述示例之外,它还有更进一步:

  • 可伸缩性选项 - Spring Batch提供了许多可伸缩性选项,范围从单个JVM到线程(多线程步骤,本地分区和拆分)到多JVM可伸缩性(远程分区和远程分块)。
  • 与Spring集成集成 - Spring Integration提供了许多有用的元素,允许您构建强大的批处理应用程序来处理错误消息,文件的poling目录,自动FTP文件等等。
  • 大数据支持 - 通过Spring for Apache Hadoop项目,Spring Batch有许多扩展,可以与Hadoop很好地协作。您可以在YARN上运行Spring Batch作业,您可以执行Pig,Hive,MapReduce等作业。
  • 与Spring XD集成 - Spring XD为批处理作业的部署,管理和执行提供了分布式运行时。

我个人认为批量处理是设置它并忘记它"编程模型。虽然它不性感,但批处理是一种非常有用的处理模型,并且比大多数人意识到的更有用。 Spring Batch提供了一个环境,可以尽可能轻松地开发强大的批处理作业。