【问题标题】:How To Handle Large Files Using Spring Integration如何使用 Spring Integration 处理大文件
【发布时间】:2021-06-29 01:09:55
【问题描述】:

我正在处理非常大的文件并使用 Spring Integration 来处理它们。我想知道使用 Spring Integration 和提供的 DSL 处理它们的最佳和最有效的方法是什么。我有一个包含大约 30K 记录的测试 CSV 文件,并且正在使用 FileSplitter 组件将每一行读入内存,然后根据分隔符再次拆分以获得我需要的列。

代码如下:sn-p。

IntegrationFlows
            .from(Files.inboundAdapter(new File(inputFilePath))
                    .filter(getFileFilters())
                    .autoCreateDirectory(true) ,
                    c -> c.poller(Pollers.fixedRate(1000))
                    
                    )
            
            .split(Files.splitter())
            .channel(c -> c.executor(Executors.newWorkStealingPool()))
            .handle((p, h) -> new MyColumnSelector().getCol((String) p, 1))
            .split(s -> s.applySequence(true).delimiters(","))
            .channel(c -> c.executor(Executors.newWorkStealingPool()))
            .get()

【问题讨论】:

  • 请分享一下,我们面临的问题是什么?看起来你没有问任何问题,而且你的代码也提供了一些解决方案。你在寻求什么样的帮助?是什么让您认为您的解决方案效率不高?
  • 您好 Artem,感谢您的回复。我意识到我的问题只是 IDE 和减慢了速度的日志记录开销。我用相同的文件测试了这个,没有任何日志记录,也没有我的 IDE,它的处理速度明显更快。再次感谢。
  • 好。您可以将其作为您自己问题的答案,让人们知道发生了什么。因为是的,乍一看我没有发现您的配置有任何问题……

标签: spring-boot spring-integration spring-integration-dsl


【解决方案1】:

问题在于 IDE 和控制台日志记录开销会减慢速度。我在没有任何 IDE 或任何额外日志记录的情况下使用相同的文件进行了测试,它的处理速度明显更快。

【讨论】:

    猜你喜欢
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    相关资源
    最近更新 更多