Qual è la complessità temporale algoritmica dell'applicazione dei selettori JMS quando si utilizzano messaggi da una coda, in relazione alla profondità della coda n? In particolare, è lineare (O (n)) per lettura? È dipendente dall'implementazione (sul provider JMS) e dipende da quali campi vengono richiesti?In che modo i selettori JMS ridimensionano con la profondità della coda?
(se l'implementazione dipende, sono particolarmente interessato a Websphere MQ e al comportamento di Solace, ma accolgo con favore le risposte che riguardano qualsiasi particolare provider JMS, specialmente se si dispone di collegamenti alla documentazione che descrive la complessità!).
Motivazione: ogni messaggio ha due proprietà: una invocationID
e batchName
. Un lotto consiste di diverse invocazioni. I clienti desiderano consumare messaggi in uno dei due modi; o dal invocationID
o dal batchName
. Al punto che i messaggi vengono prodotti, non so con quale metodo verranno consumati.
Questo può essere attuata attraverso selettori:
invocationID=42
O
batchName="reconciliation"
... e posso accelerare uno di questi in su utilizzando l'ID di correlazione invece di una proprietà personalizzata, ma sono preoccupato che l'altro rimanga lento.
Ottima domanda! Sospetto che sia molto difficile ottenere una buona risposta, ma è ovviamente di fondamentale importanza per prendere alcune decisioni architettoniche. –
Grazie @TomAnderson! – bacar