キューからメッセージを消費するときにJMSセレクタを適用するアルゴリズムの時間的複雑度はどのくらいですかn?特に、読み取りごとに線形(O(n))ですか?それは実装依存(JMSプロバイダ上)であり、どのフィールドが要求されているかによって異なりますか?JMSセレクタはキューの深さに応じてどのように拡張されますか?
(実装に依存する場合、特にWebsphere MQとSolaceの動作に興味がありますが、特に複雑さを説明するドキュメントへのリンクがある場合は、特定のJMSプロバイダを扱う答えを歓迎します)。
動機:各メッセージには、invocationID
とbatchName
という2つのプロパティがあります。バッチはいくつかの呼び出しで構成されています。クライアントは2つの方法のいずれかでメッセージを消費することを望みます。 invocationID
またはbatchName
のいずれかです。メッセージが生成される時点で、どのメソッドを使用するのか分かりません。
これは、セレクタを介して実装することができます。
invocationID=42
それとも
batchName="reconciliation"
を...と私は代わりに、カスタムプロパティの相関IDを使用して、これらのいずれかをスピードアップするが、午前ことができますもう一方は遅いと懸念しています。
大きな質問です!私はこれが良い答えを得ることは非常に難しいと思っていますが、明らかに特定の建築上の意思決定を行う上で基本的に重要です。 –
ありがとう@TomAnderson! – bacar