java - ActiveMQ - 保留消耗的消息直到确认删除

标签 java spring-boot activemq

我有一个正在监听 ActiveMQ 队列的 Spring Boot 应用程序。

有没有办法告诉 ActiveMQ 保留已使用的消息,直到收到从我的服务中删除消息的确认?

我的场景是我从队列中读取消息,一旦使用,我将其发送到外部队列。如果外部服务无法处理该消息,我就会丢失该消息。我是否可以告诉 Activity mq 保留已使用的消息,直到收到删除确认为止。

最佳答案

最安全的选择是使用 XA 事务以原子方式执行消费/发送(假设您发送消息的代理支持 XA)。我不确定这在 Spring 中有多容易或多困难,但我知道它在 Java EE 容器中非常简单。

关于java - ActiveMQ - 保留消耗的消息直到确认删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49261128/

相关文章:

尝试运行 Web 客户端时发生 Java 错误

java - 如何支持连接池供应商特定的 DataSourceProperties 配置

java - 使用 localhost VM 创建的 ActiveMQ 不会创建 JMX Bean

grails - 应用程序完全启动后,grails jms开始监听

java - 适合存储java项目信息的数据结构

java - 为 Swing 桌面应用程序制作 jar 时将资源放在哪里?

java - 使用 linkedin 进行 Spring OAuth 登录

java - JMSListener - 动态选择器

java - 如何使用 Jcombo + 监听器

java - 响应休息分页请求的正确方法