1

ラクダのjetty-activemqルートを次のように定義しました。

from( "jetty:http://0.0.0.0:8087 / url1")。to( "activemq:queue:queue1)

キャメルはactivemq接続を作成してから、jettyが受信するすべてのメッセージにその接続を使用しますか、それともメッセージごとにactivemq接続を作成しますか。

activemqにプールされた接続を使用することを計画しています。メッセージの流入が毎秒かなり多いため、最大接続プールサイズを定義するためにラクダの動作を理解する必要があります。

4

1 に答える 1

1

ActiveMQコンポーネントとJMSコンポーネントは、メッセージを送信するときにSpringFrameworkのJMSTemplateに基づいています。

ご存知のとおり、メッセージごとに接続+セッション+プロデューサーを作成して閉じますが、これはパフォーマンスの面で最適ではありません。

activemqコンポーネントのドキュメントで推奨されているように、プーリングを使用してセットアップする必要があります。次に、接続/セッション/プロデューサーを再利用します。

このルートでのみ使用する場合は、実際には、そのプールのプールに1つの接続だけで存在できます。

ActiveMQは、JMSTemplateを使用したヒントとコツの要約を作成しました。読む価値があります。

更新:同時実行に関連する接続の数について:

簡略化すると、接続はブローカーとのネットワーク接続(「ソケット」)であり、多くのスレッド間で共有されます。各スレッドには、共有接続を使用して同時に動作する独自の(プールされた)セッションがあります。複数のActiveMQブローカーがあり、それらの間で負荷分散を行いたい場合は、複数の接続が引き続き機能強化になる可能性があります(ActiveMQがボトルネックであり、アプリケーションではない場合)。

failover:(ssl://host1:61616,ssl://host2:61616)

また、実際には、接続の限られたセットを1つではなく使用することでパフォーマンスが少し低下する可能性がありますが、特定の環境でテストする必要がある可能性があります。

于 2012-10-28T21:54:16.420 に答える