2015-04-30 33 views
0

哪個消息選擇器選項好? JMSCorrelationID或簡單的字符串作爲JMS屬性來選擇性地從隊列中提取消息?我相信,就表現而言他們是一樣的。消息選擇器選項JMSCorrelationID或簡單字符串作爲JMS屬性

Producer side using string property: 
message = session.CreateTextMessage(msg); 
message.setString("myfilter", "abc"); 
producer.sent(message); 

Producer side using JMSCorrelation ID : 
message = session.CreateTextMessage(msg); 
message.setJMSCorrelationID("abc") 
producer.sent(message); 

回答

1

這取決於ActiveMQ索引消息的屬性(或屬性)。我希望消息在消息標識符和相關標識符上被編入索引,因爲這是消息頻繁搜索的兩個屬性。對特定於應用程序的屬性編制消息索引極不可能。所以JMSCorrelationID將是你最好的選擇。

+0

我不確定,如果這是正確的,還有一點不同。如果我們使用關聯ID,則客戶端將獲取所有消息並使用關聯ID進行過濾。如果我們使用消息特定的屬性代理爲客戶端進行過濾。 – kartik