7.4. 使用重复消息检测


AMQ Broker 包含自动重复的消息检测,用于过滤它收到的任何重复信息,因此您不必对自己的重复检测逻辑进行编码。

要启用重复的消息检测,请为消息属性 _AMQ_DUPL_ID 提供唯一值。代理收到消息时,它会检查 _AMQ_DUPL_ID 是否有值。如果存在,代理会在其内存缓存中检查,以查看它是否收到了具有该值的消息。如果找到具有相同值的消息,则忽略传入的消息。

如果您在事务中发送信息,则不必为事务中的每个信息设置 _AMQ_DUPL_ID,而只需要在其中之一中设置。如果代理检测到事务中任何消息的重复信息,它会忽略整个事务。

设置重复 ID 消息属性

以下示例演示了如何使用 AMQ 核心协议 JMS 设置重复检测属性。请注意,为方便起见,客户端使用常量 org.apache.activemq.artemis.api.core.Message.HDR_DUPLICATE_DETECTION_ID 值作为重复 ID 属性 _AMQ_DUPL_ID

流程

_AMQ_DUPL_ID 的值设置为唯一字符串值。

Message jmsMessage = session.createMessage();
String myUniqueID = "This is my unique id";
message.setStringProperty(HDR_DUPLICATE_DETECTION_ID.toString(), myUniqueID);
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部