私は以下のようなルートを持っています。ルートは定期的にディレクトリをポーリングし、大きなサイズの.csvファイルを読み込みます。その後、ファイルを1000行のチャンクに分割し、seda queue(firstQueue)
に送信します。私はこのsedaキューに15人の同時消費者を持っています。Apache camelのSedaの同時消費者
route.split().tokenize("\n", 1000).streaming().to("seda:firstQueue?concurrentConsumers=15").process(myProcessor).to("seda:secondQueue?concurrentConsumers=15").process(anotherMyProcessor);
1)意味15人の同時消費者の何 - それは15件のスレッドがSEDAからデータを読み込み、myProcessor
の1つのインスタンスに渡し意味ありませんの?または、myProcessor
の15の別個のインスタンスが、それぞれデータの同じコピー上で動作するように作成されますか? myProcessor
はシングルトンであることに注意してください。プロトタイプに変更するとどうなりますか?
2)2つ以上のスレッドが同じデータを選択してmyProcessor
に渡すことは可能ですか?または、2つのスレッドが同じデータを持たないことが保証されていますか?
迅速な対応を心より感謝します。ありがとう!
かなり古いバージョンのcamel - 2.10.1を使用しています。このバージョンではsedaとconcurrentConsumersに問題があったのか誰にも気付いていますが、それ以降のバージョンで修正されている可能性はありますか? –