3

私は Apache Camel とアグリタ EIP を使用してルートに取り組んでいます。ルートは、jms を介してデータベースからデータを消費し、それを集約して、Web サービスに送信します。

アグリゲーターは、Oracle データベースにデータを永続化します。

ご存知のように、アグリゲーターの同期ブロックはそのルートのボドルネックです。

すでに複数のバケット (correltionExpression = threadName) を使用しようとしましたが、速度が思うように向上しませんでした...

1 秒間に少なくとも 150 件のメッセージが必要です。現時点では、70 のみが可能です :(

速度を改善する方法を知っている人はいますか? たぶん、2番目のアグリゲーターですか?何か提案はありますか?

最後の質問: アグリゲーターはメッセージを複数のバケットに並行して書き込むことができますか? それとも、ロックが原因でそうではないのでしょうか? コード内のドキュメントにはそうであると記載されているため (相関キーごとの同時集計によりパフォーマンスが向上する可能性があります)、私の意見では、コード自体はそれを行いません。

前もって感謝します!!

ステファン

4

2 に答える 2

0

独自の AggregationRepository を実装でき、そこでデータベースに一括保存できます。

すぐに使用できる JDBC ベースは、一度に 1 つの更新/挿入を実行します。

于 2013-05-29T06:26:04.470 に答える