我需要队列来强制执行无重复策略。是否可以?如果是这样,如何?
(我已经用谷歌搜索了几个小时......)
编辑:
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/