我正在使用Camel将一些字符串(100,000s)写入文本文件集。Apache Camel文件输出组件性能较慢 - Java
下面的代码显示了我的骆驼航线:
from("seda:fileOutputMatchedMsgClose?concurrentConsumers=44")
.to("file:MATCHED_CLOSE?fileExist=Append")
.end();
所以基本上发生的事情是我有一个制片人豆这是创建于加工进一步上行目标这些字符串。我将头文件名设置为生产者bean的sendbody和header方法的一部分。所以我有22个正在写入的文件(全部在MATCHED_CLOSE文件夹中)。这22个文件的消息全部发送到一个SEDA端点(fileOutputMatchedMsgClose)。
问题是应用程序发送大约440个字符串到SEDA端点一秒钟。并且查看JConsole中fileOutputMatchedMsgClose的队列大小,它随着内存使用量的增长而不断增长。所以看起来这里有一点瓶颈。
对于如何获得更好的表现,任何人都不会有任何建议,440文件中的每一行都写入280chars左右,不是很大。所以我想问题是我可以做些什么优化来提高Camel中文件组件的性能(也许为每个文件创建多个路径(这会很痛苦),还是应该编写自己的文件IO bean来处理这个?
干杯!