activemq - Apache ActiveMQ 5.3 - 如何配置队列以拒绝重复消息?

标签 activemq

我需要队列来强制执行无重复策略。是否可以?如果是这样,如何?
(我已经用谷歌搜索了几个小时......)

编辑:

ActiveMQSession 实现有以下几行:

        // transform to our own message format here
            ActiveMQMessage msg = ActiveMQMessageTransformation.transformMessage(message, connection);

        // Set the message id.
        if (msg == message) {
            msg.setMessageId(new MessageId(producer.getProducerInfo().getProducerId(), sequenceNumber));
        } else {
            msg.setMessageId(new MessageId(producer.getProducerInfo().getProducerId(), sequenceNumber));
            message.setJMSMessageID(msg.getMessageId().toString());
        }

ActiveMQMessageTransformation 是可插入的(您可以设置它),但下面的 if 语句是相当无可争议的。

任何想法,除了改变他们的代码?

最佳答案

ActiveMQ 具有内置的重复消息检测 - 您如何定义重复?如果重复具有相同的 messageId - 它应该被丢弃

关于activemq - Apache ActiveMQ 5.3 - 如何配置队列以拒绝重复消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1868349/

相关文章:

java - activemq 和 Glassfish : InactivityIOException: Channel was inactive for too long

java - ActiveMQ,代理接收要发送的消息的时间戳

c++ - 为 ARM 交叉编译 ActiveMQ

java - JMS消息重新传递

jakarta-ee - 检查ActiveMQ代理的状态

java - 以编程方式让一个队列订阅多个队列

network-programming - Apache ActiveMQ 与原始套接字的性能开销是多少?

java - 无法提取正文.. 禁止类

javascript - 如何启动 ajax 推送网站(activemq 或 cometd 或其他)?

java - 针对特定属性组同步处理 jms 消息,但在其他组中同时处理 jms 消息