從隊列中消耗消息時應用JMS選擇器的算法時間複雜度,相對於隊列深度n?特別是,每次讀取是線性的(O(n))?它是依賴於實現的(在JMS提供者上),並且它取決於被請求的字段?我對Websphere MQ和Solace的行爲特別感興趣,但是我歡迎與任何特定JMS提供者打交道的答案,特別是如果你有指向描述複雜性的文檔的鏈接!)。JMS選擇器如何按照隊列深度進行縮放?
動機:每封郵件有兩個屬性:invocationID
和batchName
。批處理由多個調用組成。客戶希望以兩種方式消費消息;通過invocationID
或batchName
。在產生信息的時候,我不知道他們將被消費的方法。
這可以通過選擇來實現:
invocationID=42
或者
batchName="reconciliation"
...我可以通過使用相關ID,而不是一個自定義屬性加速這些了一個,但我擔心對方會保持緩慢。
偉大的問題!我懷疑這很難得到一個很好的答案,但對於做出某些架構決策顯然是非常重要的。 –
謝謝@TomAnderson! – bacar