ActiveMQ - 检测消息重复
ActiveMQ - Detecting Message Duplication
我目前正在探索 Active MQ 中的重复数据删除策略。 Artemis 支持 duplicate detection,但我不确定 ActiveMQ 5
如果消息当前存在于 ActiveMQ 5 的队列中,是否可以阻止将其放入队列?
不再在队列中且过去曾在队列中的消息将被允许返回队列。
我试图实现的底层功能是流量控制,其中多个相同值的消息不放在队列中以消除重复处理。
根据文档,我尝试使用消息 属性 定义 _AMQ_DUPL_ID
,但我仍然遇到重复。我怀疑这在 ActiveMQ 5 中可能不受支持,并且不确定替代选项是什么。我乐于接受建议。
注意:正在使用的 Active MQ 实例由 Amazon MQ 提供。
如您所料,ActiveMQ 5.x 不支持自动重复检测。这仅在 ActiveMQ Artemis 中受支持。也就是说,当从队列中使用消息时,消息不会从代理的重复 ID 缓存中删除。这是因为在大多数情况下,消息被消费后发送的重复项仍被视为重复项。
您可能能够在代理插件中实施某种重复检测,但我不知道 Amazon MQ 是否支持添加自定义插件。您更有可能必须在客户端中实施重复检测。
我目前正在探索 Active MQ 中的重复数据删除策略。 Artemis 支持 duplicate detection,但我不确定 ActiveMQ 5
如果消息当前存在于 ActiveMQ 5 的队列中,是否可以阻止将其放入队列?
不再在队列中且过去曾在队列中的消息将被允许返回队列。
我试图实现的底层功能是流量控制,其中多个相同值的消息不放在队列中以消除重复处理。
根据文档,我尝试使用消息 属性 定义 _AMQ_DUPL_ID
,但我仍然遇到重复。我怀疑这在 ActiveMQ 5 中可能不受支持,并且不确定替代选项是什么。我乐于接受建议。
注意:正在使用的 Active MQ 实例由 Amazon MQ 提供。
如您所料,ActiveMQ 5.x 不支持自动重复检测。这仅在 ActiveMQ Artemis 中受支持。也就是说,当从队列中使用消息时,消息不会从代理的重复 ID 缓存中删除。这是因为在大多数情况下,消息被消费后发送的重复项仍被视为重复项。
您可能能够在代理插件中实施某种重复检测,但我不知道 Amazon MQ 是否支持添加自定义插件。您更有可能必须在客户端中实施重复检测。