2016-09-27 6 views
1

単一のプロデューサから単一のコンシューマアプリケーションにメッセージをルーティングする運用システムにTibco EMSメッセージキューがあります。ブリッジ時にTibco EMSキューをパージする必要があります

アプリケーションを垂直方向にスケーリングしていますが、財政的な制約のため、2つのアプリケーションをペアでスケーリングすることはできません。

1人のプロデューサがメッセージブローカーにメッセージをルーティングし、メッセージブローカーはメッセージセレクターに基づいて1人の消費者のうちの1人にメッセージをブリッジする必要があります。

プロデューサキューのメッセージをコンシューマキューにルーティングするキューブリッジとセレクタをセットアップしました。これは、1対多数のキューブリッジです。

ブリッジされたコンシューマキューにコンシューマが添付されており、セレクタに基づいてメッセージを正しく受信していることがわかりましたが、プロデューサキューにはメッセージのコピーが保持されます。

ブリッジとセレクタを使用してこのシナリオを処理する最良の方法は、消費される(耐久性のある)メッセージがブローカで保持され、消費者キューでメッセージが消費されるとメッセージがブローカ。

答えて

1

元のキューのメッセージを廃棄する最も簡単な方法は、MaxMsgsとMaxBytesをキューに導入することです。

元のキューのメッセージは、ブリッジされたキューの1つで消費された場合にのみ処分できます。これは不可能です。

つまり、ブリッジキューはソースキュー内のメッセージに関係なく、独自のメッセージコピーを保持しているため、これは不要です。したがって、元のキューにメッセージが期限切れになっても、すでにブリッジされたメッセージには何の影響もありません。

+0

ありがとうございます。しかし、MaxMsgsとMaxBytesの番号はどのように思いつきますか?受信されたメッセージの数は非決定論的です。それは1日あたり1または1分あたり1千であることができる。 –

+1

他の目的のためにソースキューにメッセージが必要ない場合は、MaxMsgsを1に設定するだけで済みます。したがって、キューには最後のメッセージのみが格納されます。 –

+0

ああ。私はそれを試してみましょう。 –