我目前正在研究Active MQ中的重复数据删除策略。 Artemis支持duplicate detection,但我不确定ActiveMQ 5
如果ActiveMQ 5中的消息当前存在于队列中,是否可以阻止该消息放置在队列中?
过去已不在队列中的消息将被允许回到队列中。
我要实现的基本功能是流控制,其中不将具有相同值的多个消息放置在队列中以除去重复的处理。
基于文档,我尝试使用定义为_AMQ_DUPL_ID
的message属性,但是我仍然遇到重复。我怀疑ActiveMQ 5中可能不支持此功能,并且不确定是哪种替代选项。我愿意接受建议。
注意:Amazon MQ提供了正在使用的Active MQ实例。
答案 0 :(得分:1)
您怀疑ActiveMQ 5.x不支持自动重复检测。仅ActiveMQ Artemis支持此功能。也就是说,从队列中消费消息后,不会从代理的重复ID缓存中删除消息。这是因为在大多数情况下,使用完邮件后发送的重复副本仍被视为重复副本。
您也许可以在代理插件中实施某种重复检测,但是我不知道Amazon MQ支持添加自定义插件。您更有可能必须在客户端本身中实现重复检测。