当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ重新交付策略-它是如何工作的?

王涵育
2023-03-14

谁能解释一下ActiveMQ重新交付策略实际上是如何工作的?它是在客户端还是在服务器端工作?

假设我有一个重新传递策略,每次尝试之间间隔30分钟,重新传递消息长达10分钟,那么失败的消息到底在哪里?

假设消息现在失败了,30分钟后重新发送,那么消息在哪里?

http://activemq.apache.org/redelivery-policy.html http://activemq.apache.org/message-redelivery-and-dlq-handling.html

共有1个答案

陈飞语
2023-03-14

有两种类型的重新交付。典型的策略是绑定到ConnectionFactory客户端的重新交付策略。代理不知道在这个设置中的重新传递,因为它是由客户机处理的,消息实际上在客户机上等待重新传递。但是,由于客户机没有提交(或确认)消息,代理不会删除它。因此,如果消息在30分钟内重新交付,但客户机应用程序在10分钟后关闭,消息将在代理上重新可见。

还有代理端通过插件重新交付。在这种情况下,代理处理重新交付。有利弊之分,特别是您不能从客户机代码中控制它--但代理管理员可以控制它。这意味着代理重新传递可以重新传递给不同的使用者,而客户端重新传递不能。

请在本页底部阅读有关代理重新交付的更多信息:http://activemq.apache.org/message-redelivery-and-dlq-handling.html

 类似资料:
  • 我正在使用ActiveMQ Artemis 2.17和Spring Boot 2.5.7。我正在发布关于主题和队列的消息并使用它。所有这些都是通过JMS完成的。所有队列(选播或多播)都是耐用的。我的主题(多播地址)有两个持久队列,以便有两个独立的使用者。在我的主题中,这两个消费者使用持久和共享订阅(JMS 2.0)。所有处理都是事务性的,通过Atomikos事务管理器进行管理(我需要它来提交数据库

  • 问题 在我看来不一致的是,如果您连续发布消息,Artemis似乎保留了顺序,而如果消息之间有轻微的延迟,那么队列不会阻塞,只有失败的消息被延迟调度(根据文档)。 我试图找到一个解决方案,这样如果一个消息失败,并需要在10分钟内重新传递,它不会阻止后续的消息。

  • 设置: 我们有一个Spring Boot应用程序,它正在从ActiveMQ Artemis JMS队列读取消息 这些消息正在JPA事务中处理 当在JPA中有一个异常触发回滚时,它也会在Artemis中触发一个JMS回滚,而Artemis设置了重新交付延迟 我们的应用程序在多个实例中并行运行,这在处理共享公共数据的多条消息时会导致乐观锁定问题 问题:当X消息被并行处理并且存在乐观锁定问题时,只有一个

  • 我正在使用: SpringBoot 2.0.4 ActiveMQ 5.15.5 Apache Camel 2.22.0 Java1.8 太棒了 马文 基本上,我有一个带有Apache Camel路由的SpringBoot应用程序,它使用来自ActiveMQ的消息和事务。我需要在ActiveMQ上设置一个Re的策略,所以当处理中发生错误时,消息会被重试多次。 我已经用bean为ActiveMQ创建了

  • 开发人员控制台中出现了一系列错误: 拒绝计算字符串 拒绝执行内联脚本,因为它违反了以下内容安全策略指令 拒绝加载脚本 拒绝加载样式表 这是怎么回事?内容安全策略(CSP)是如何工作的?如何使用HTTP头? 具体来说,如何。。。 …允许多个源? …使用不同的指令? …使用多个指令? …处理端口? …处理不同的协议? …允许协议? …使用内联样式、脚本和标记