【问题标题】:Stopping consumers from consuming messages from queue阻止消费者消费队列中的消息
【发布时间】:2014-01-03 23:57:37
【问题描述】:

我从 ActiveMQ 开始,我有一个用例。我有 n 个生产者将消息发送到队列 Q1。我想停止传递消息(即我不希望消费者使用这些消息)。我想将消息存储一段时间而不被消耗。

我正在寻找可以实现这一目标的方法。根据我浏览的内容,我想到了这两件事。

  • 使用镜像队列,这样我就可以窃听消息并保存到虚拟队列中。
  • 可能会阻止消费者对队列执行 PULL。
  • 另一种肮脏的做法是让消费者在消费队列中的消息后不发送确认消息。

我们目前对其中任何一个都不满意。

您可以建议的任何其他方式。

提前致谢。

【问题讨论】:

    标签: activemq


    【解决方案1】:

    如果您总是希望消息传递延迟,您可以使用 ActiveMQ 的scheduler 功能将传递延迟到设定时间或固定延迟等。

    其他策略也可能有效,但设计适合您的用例的东西真的取决于您。您可以尝试使用 Apache Camel 定义一个路由,该路由实现您的用例逻辑,将消息分派到队列或将其发送到调度程序以进行延迟处理。这完全取决于您的用例和要求。

    【讨论】:

    • 感谢您的建议。有没有一种方法可以让消费者处于停止状态。我看到了一个 SO 问题,你也想做这样的事情。
    • 您可以停止连接,然后消费者也会停止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 2021-11-14
    • 2013-08-01
    • 2013-08-08
    • 2023-03-28
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多