1

Java スタンドアロン アプリケーションのメッセージ キューとして activemq を使用しています。私の問題は、activemq Web コンソールに基づいて、キューにこの特定の数のメッセージがエンキューおよびデキューされていることです。ただし、コードに追加した sysout ステートメントに基づくと、アプリケーションが消費しているメッセージの数は、activemq Web コンソールに表示される数よりも少ないようです。たとえば、activemq コンソールでは、いいえ。エンキューおよびデキューされたメッセージの数は約 1800 です。ただし、コンソールに表示されるデキューされたメッセージの数 (受信したメッセージごとにカウンターをインクリメントします) は約 1700 にすぎません。

おおよその場所が本当にわかりません。100 件のメッセージが送信されました。プロデューサーによってエンキューされ、コンシューマーによってキューから取り出されたメッセージをactivemqログに記録する方法を知っていれば、いくつかのアイデアが得られると思います。これは可能ですか?はいの場合、どうすればこれを行うことができますか?

4

1 に答える 1

1

enqueued == 最後の再起動以降にキューに入れられたメッセージの数 dequeued == コンシューマーによって正常に処理されたメッセージの数 2 つの数値の差 == 処理中のメッセージの数。通常は「dispatched」カウンターによって追跡されます。「飛行中」とは、消費者に送信されたが、まだ確認されていないことを意味します。

于 2013-11-06T17:08:49.753 に答える