Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用多个使用者时同步接收消息_Java_Jms_Activemq - Fatal编程技术网

Java 使用多个使用者时同步接收消息

Java 使用多个使用者时同步接收消息,java,jms,activemq,Java,Jms,Activemq,我是活动MQ的新手。我的队列只有一个消费者。我在同步阅读信息,每条信息的最后一条都是唯一的字符串。一些消息很大,所以消费者接收这些消息分为两部分,通过唯一的字符串,消费者生成完整的消息 StringBuilder snapshotUpdateString = new StringBuilder(""); while(true) { Message messageData = consumer.receive(); TextMessage textMessage = (TextMe

我是活动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()
向不同的使用者接收单个消息。如何才能使消息完整

在多消费者中,我使用了listener。当我使用多个消费者时,我是否可以同步接收消息?

您希望用于此目的。对于多个使用者,这可能有点棘手,并且需要生产者进行更多的耦合,因为它必须能够设置适当的头

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

也值得一读我在上面链接的关于选择器的内容,以帮助您选择最佳方法