gpt4 book ai didi

java - Apache Camel 文件输出组件性能缓慢 - Java

转载 作者:行者123 更新时间:2023-12-01 17:34:58 25 4
gpt4 key购买 nike

我正在使用 Camel 将许多字符串(100,000 个)写入一组文本文件。

下面的代码显示了我的 Camel 路线:

from("seda:fileOutputMatchedMsgClose?concurrentConsumers=44")
.to("file:MATCHED_CLOSE?fileExist=Append")
.end();

所以基本上发生的事情是我有一个生产者 bean,它从进一步上游处理的对象创建这些字符串。我将 header 中的文件名设置为生产者 bean 的 sendbody 和 header 方法的一部分。所以我有 22 个正在写入的文件(全部位于 MATCHED_CLOSE 文件夹中)。这 22 个文件的消息全部发送到一个 SEDA 端点 (fileOutputMatchedMsgClose)。

问题是应用程序每秒向此 SEDA 端点发送大约 440 个字符串。查看 JConsole 中 fileOutputMatchedMsgClose 的队列大小,它随着内存使用量不断增长。所以这里似乎存在一些瓶颈。

是否有人对如何获得更好的性能有任何建议,写入文件的每行 440 行约为 280 个字符,一点也不大。所以我想问题是我可以做任何优化来提高Camel中文件组件的性能(也许为每个文件创建多个路由(这会很痛苦),或者我应该编写自己的文件IO bean来处理这个?

干杯!

最佳答案

如何使用聚合器或自定义处理器将字符串组合成更大的字符串。如果您只写入一个文件,那么这可能会大大提高性能。当然,这意味着在写入发生之前您将有一些延迟,并且当崩溃发生时您可能会丢失一些数据。

关于java - Apache Camel 文件输出组件性能缓慢 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7494631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com