我正在使用Apache Camel和aggretaor EIP的路线上工作。该路由通过jms使用来自数据库的数据,将其聚合并将其发送到them服务。
聚合器将数据持久存储在oracle数据库中。
正如我们所知,加速器的同步块是这条路线的瓶颈。
我已经尝试使用多个存储桶(correltionExpression = threadName),但它并没有像期望的那样提高速度……
我需要每秒至少150条信息。目前只有70种可能:(
有人知道如何提高速度吗?也许是第二个聚合器?有什么建议吗?
最后一个问题:聚合器是否能够并行地在多个存储桶中写入消息,或者是因为锁的原因而不是这样?因为代码中的文档说明它是(每个相关键的并发聚合可以提高性能),所以在我看来,代码本身并不能做到这一点。
提前感谢!!
斯特凡
发布于 2014-03-06 14:51:11
您可以使用HawtDB文件存储库实现聚合器。尽管我已经在我的应用程序中遇到了HawtDB或Level DB存储库的性能问题,但我相信它会比JDBC持久性更快。
据我所知,如果您准备牺牲数据持久性,那么没有什么比内存中聚合更好的了。
发布于 2013-05-29 14:26:04
您可以实现自己的AggregationRepository,并且可以在其中对数据库进行批量保存。
基于JDBC的开箱即用模式是一次执行一次更新/插入。
https://stackoverflow.com/questions/16796839
复制相似问题