ActiveMQ“经典”-检测消息重复

问题描述 投票:0回答:1

我目前正在 ActiveMQ“Classic”中探索重复数据删除策略。 ActiveMQ Artemis 支持重复检测,但我不确定 ActiveMQ“经典”。

如果消息当前存在于 ActiveMQ“经典”的队列中,是否可以阻止将消息放入队列中?

不再在队列中且过去在队列中的消息将被允许返回队列。

我试图实现的底层功能是流量控制,其中相同值的多个消息不会放置在队列上,以消除重复处理。

根据文档,我尝试使用定义的消息属性

_AMQ_DUPL_ID
,但我仍然遇到重复。我怀疑 ActiveMQ“Classic”可能不支持此功能,并且不确定什么替代选项。我愿意接受建议。

注意:所使用的 ActiveMQ 实例由 Amazon MQ 提供。

jms activemq activemq-artemis
1个回答
2
投票

正如您所怀疑的,ActiveMQ“Classic”不支持自动重复检测。仅 ActiveMQ Artemis 支持此功能。也就是说,当从队列中使用消息时,消息不会从代理的重复 ID 缓存中删除。这是因为在大多数情况下,消息被消费后发送的重复项仍被视为重复项。

可能能够在代理插件中实现某种重复检测,但我不知道 Amazon MQ 支持添加自定义插件。您更有可能必须在客户端本身中实施重复检测。

© www.soinside.com 2019 - 2024. All rights reserved.