ネットワークから Web ページを受信し、HTML の詳細な処理を実行するヘビー スレッド アプリケーションを構築しました。基本的に、すべてのスレッドは、多くのネットワークにバインドされた操作と CPU にバインドされた操作で構成されています。私はそれらを別々のスレッドで実行します (したがって、ほとんどの IO/CPU 使用率を達成します)。
何百万もの URL を処理する必要があるため、seda を実行できません。Camel 2.3 に関しては、デフォルトでサイズが無制限で、しばらくするとメモリ不足になります。seda キューのサイズを厳密に制限することはできますが、そうしないことに決め、代わりに JMS キューを使用します。
同じ数のスレッドで、jprofiler8 を使用した Thread Telemetry の異なる結果が表示されます。違いを確認してください:
jms: キューと比較して seda: キューを使用すると、IO 使用率が大幅に向上する理由を誰かに説明してもらえますか?