【问题标题】:Read large files and send to jms queue using spring batch使用spring批处理读取大文件并发送到jms队列
【发布时间】:2019-05-28 14:43:21
【问题描述】:

我有一个场景来读取一个大文件并将记录发送到 jms 队列以进行进一步处理。 该文件可以是 CSV/FIX 格式。我打算使用 Spring 批处理来实现相同的目标。 当我们使用 spring batch 时,我阅读了关于 MultiResourcePartitioner 来读取大文件的信息。

在这种情况下使用 spring batch 是个好主意吗?或者我应该使用纯 java 代码来读取大文件?或者对于这种情况还有其他更好的方法吗?

【问题讨论】:

    标签: spring-batch batch-processing


    【解决方案1】:

    我认为 Spring Batch 对于您的用例来说是一个不错的选择,原因如下:

    • 您可以使用开箱即用的FlatFileItemReaderJmsItemWriter(与使用纯Java 自己编写此代码相比)
    • 您将有多个缩放选项(见下文)
    • 面向块的处理模型适用于大型数据集,例如您的用例中
    • 以及许多其他免费功能(事务管理、可重启性等)

    将输入文件物理分区为多个资源并使用MultiResourcePartitioner 对于您的用例来说确实是一个不错的选择。但是,这不是在 Spring Batch 中扩展面向块的步骤的唯一方法,您还可以使用:

    前面的 3 种扩展技术是在单个 JVM 中实现的。还有其他选项可以跨多个 JVM 扩展批处理作业,例如远程分块和远程分区(但对于您的用例,IMO 不需要这些选项)。

    您可以在此处通过代码示例找到有关所有这些缩放技术的讨论:https://www.youtube.com/watch?v=J6IPlfm7N6w

    希望这会有所帮助。

    【讨论】:

    • 感谢您的快速响应。让我尝试使用相同的方法。!
    猜你喜欢
    • 2017-12-14
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    相关资源
    最近更新 更多