Camel Aggregator EIP提高速度

时间:2013-05-28 16:16:26

标签: performance apache-camel aggregator

我正在使用Apache Camel和aggretaor EIP开发一条路线。该路由通过jms从数据库中消耗数据,聚合它并将它们发送到Web服务。

聚合器将数据保存在oracle数据库中。

众所周知,聚合器的同步块是该路径中的boddle neck。

我已经尝试过使用多个存储桶(correltionExpression = threadName),但它并没有像想要的那样提高速度......

我每秒至少需要150封邮件。目前只有70个是可能的:(

有谁知道如何提高速度?也许是第二个聚合器?有什么建议吗?

最后一个问题:聚合器能够并行地在多个存储桶中写入消息,还是因为锁定而不是这种情况?因为代码中的文档说它是(每个相关键的并发聚合可以提高性能),所以代码本身并不是我认为的。

提前致谢!!

的Stefan

2 个答案:

答案 0 :(得分:0)

您可以实现自己的AggregationRepository,在那里您可以批量保存到数据库。

基于JDBC的开箱即用一次进行一次更新/插入。

答案 1 :(得分:0)

您可以使用HawtDB文件存储库实现聚合器。虽然我已经在我的应用程序中遇到了HawtDB或Level DB存储库的性能问题,但我确信它会比JDBC持久性更快。

据我所见,如果你准备牺牲数据持久性,没有什么比内存聚合更好。