2015-04-30 31 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