使用Apache Camel处理大型JSON文件

a6b3iqyw  于 8个月前  发布在  Apache
关注(0)|答案(1)|浏览(92)

我尝试使用apache camel使用JSON数组形式的记录来消耗大型JSON文件。我使用split()和jsonpath(“$”)来分割记录,它返回Map,并且可以很好地处理小文件。但是对于大文件,它会加载内存中的所有内容并导致outofmemoryerror。
下面是代码。有什么建议如何处理大文件吗?

from("file://{{data.file.inbound}}?charset=utf-8&readLock=changed&move={{data.file.processed}}&moveFailed={{data.file.failed}}")
                .id("file-to-mongodb").split().jsonpath("$").streaming()
                .to("log:com.manoj.oneByone");

字符串

4zcjmb1e

4zcjmb1e1#

由于将整个文件加载到内存中,OOM出现问题。
我会尝试下面的代码,它将文件分块复制:

from("file://{{data.file.inbound}}?charset=utf-8&readLock=changed&move={{data.file.processed}}&moveFailed={{data.file.failed}}")
                .id("file-to-mongodb").split().jsonpath("$").streaming()
                .to("log:com.manoj.oneByone?fileExist=Append");

字符串

相关问题