spring-boot - 如何使用最新的SpringBoot和ActiveMQ classic将消息放回队列

标签 spring-boot error-handling activemq

我正在设计一个简单的系统,流程将如下所示:
Message Producer Microservice --> Active MQ --> Message Consumer Microservice --> Mongo DB
我需要以某种方式设计一种排队策略,以便在MongoDB关闭时不会丢失消息(因为消息使用者将使消息出队)。

我的消费者是这样写的:

    @JmsListener(destination = "Consumer.myconsumer.VirtualTopic.Tracking")
    public void onReceiveFromQueueConsumer2(TrackingRequest trackingRequest) {
        log.debug("Received tracking request from the queue by consumer 2");
        log.debug(trackingRequest.toString());
    }

您如何提供客户确认?

最佳答案

您可以从“消息使用者微服务”中使用客户端确认模式。由于您使用的是Spring JmsListener,因此可以使用 containerFactory 定义侦听器容器,然后可以使用sessionAcknowledgeMode在侦听器容器上设置所需的模式。有关您可能想在此处使用哪种确认模式的更多详细信息,请参见the Spring documentation

从ActiveMQ客户端的 Angular 来看,您可以配置重新交付语义,但是如果发生故障,可以根据需要进行配置。有关更多信息,请参见ActiveMQ documentation

关于spring-boot - 如何使用最新的SpringBoot和ActiveMQ classic将消息放回队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58793859/

相关文章:

java - Spring Boot 验证不适用于所有 bean

spring-boot - 我可以在 Spring Boot 1.5.x 中使用 "Spring Data JDBC"吗?

.net - 什么情况下UIElement.UpdateLayout()可以调用Environment.FailFast?

sql - 如何在过程执行期间跟踪异常错误消息

java - 避免连接主动/被动 ActiveMQ 时出现错误消息

java - Spring Activity 尚未发布

java - 如何在 Spring Data 中编写 Couchbase N1QL 查询?

arrays - 如何获取嵌套numpy数组的各列的所有平均值?

java - 原因 : Broker: localhost - Client: tata_consumer already connected from tcp://127. 0.0.1:52917

java - 类转换异常 : ActiveMQMapMessage cannot be cast to ActiveMQMapMessage