【问题标题】:Receiving message synchronically when I use multiple consumer当我使用多个消费者时同步接收消息
【发布时间】:2015-01-02 14:24:52
【问题描述】:

我是 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() 中接收到单个消息给不同的消费者。如何使消息完成消息。

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

【问题讨论】:

    标签: java jms activemq


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 2013-08-25
      • 2016-06-08
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多