2014-11-06 108 views
0

我是Active MQ中的新成员。我的队列中有一名消费者。我正在同步阅读消息,并且唯一的字符串在每个消息的最后。一些消息很大,因此消费者通过两部分接收这些消息,并通过唯一字符串消费者完成消息。当我使用多个消费者时同步接收消息

StringBuilder snapshotUpdateString = new StringBuilder(""); 
while(true) { 
    Message messageData = consumer.receive(); 
    TextMessage textMessage = (TextMessage) messageData; 
    String receivedMessage=textMessage.getText(); 

    if (receivedMessage.contains("" + (char) PushPortContants.EOF)) { 
     snapshotUpdateString.append(receivedMessage); 
     String snapshot = snapshotUpdateString.substring(1, snapshotUpdateString.length() - 1); 
     parseSaveSsUpdateData.parseAndSave(snapshot); 
     snapshotUpdateString = new StringBuilder(""); 
    } 
    else snapshotUpdateString.append(receivedMessage); 
} 

在队列中,消息越来越高,所以我又增加了一个消费者。现在消费者是两个。 如果消息很大,那么在两个part()中收到单个消息给不同的消费者。如何使消息完成消息。

在多个消费者中,我使用了聆听者。当我使用多个消费者时,可以同步接收消息吗?

回答

2

您想为此使用Message Groups。这对于多个消费者来说可能有点棘手,并且需要更多的生产者耦合,因为它必须能够设置适当的头部。

在任何情况下,生产者都需要标记JMSXGroupId和JMSXGroupSeq来指示特定组的消息和顺序。

这也是值得一读the link at the bottom of the page我链接上面关于选择器,以帮助您选择最好的方法。

相关问题