弹簧批的优点

abh*_*ram 24 spring spring-batch

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

有没有人可以告诉我,如果有更多的理由去春季批处理框架?

Mic*_*lla 61

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

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

Spring Batch作为JSR-352(java批处理规范)的基础,自从该规范问世以来,Java空间中现在有很多Spring Batch可供使用.话虽如此,Spring Batch仍然提供了许多基本Java所做的范围:

在"基本"批处理作业中

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

  • 超过17 ItemReader和15个ItemWriter实现,涵盖了输入和输出的大量选项(文件,JDBC,NoSQL,JMS等).所有这些都提供了声明式I/O选项,因此您无需为有状态的读者和编写者编写和测试代码.
  • Tasklet(Spring Batch相当于JSR-352的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提供了一个环境,可以尽可能轻松地开发强大的批处理作业.

  • Spring Batch Admin - 尽管不是核心批处理框架的一部分.批处理管理应用程序非常有用,并提供了一个基本的UI,它不仅可以为您的作业提供视图,还允许您执行基本操作,如启动,停止和重新启动.您也可以根据需要增强此应用程序. (4认同)