【问题标题】:Blocking competing clients to take message from ActiveMQ阻止竞争客户端从 ActiveMQ 获取消息
【发布时间】:2014-11-24 22:09:07
【问题描述】:

我们有一个 JMS 队列,多个竞争客户端正在从这个队列中读取数据。 一旦消息被接收并成功处理,我们要发送确认删除(即 CLIENT ACKNOWLEDGE ) 但是,我们要确保如果一个客户端选择了消息,另一个客户端不应该从队列中取出它。 activeMQ 是否使用某些配置开箱即用地提供此功能?

此外: 如果在选择消息后消息处理失败,因此无法返回确认,在这种情况下,我们应该让其他客户端线程来提取消息。是否可以通过配置开箱即用,可以指定超时值?

问候, 乙肝

【问题讨论】:

    标签: jms activemq messaging


    【解决方案1】:

    您需要花一些时间来了解Topic and a Qeueue 之间的区别,以了解为什么第一个问题不是问题。

    对于第二个问题,这在一定程度上取决于您使用的 ACK 模式以及您如何处理同步或异步消息。通常,对于要控制重新传递的处理,您将在事务内部完成工作,如果处理失败,则在回滚 TX 时将重新传递消息。 ActiveMQ 支持redelivery policies 客户端和代理端,控制消息在发送到 DLQ 之前重新传递的时间。

    【讨论】:

      猜你喜欢
      • 2010-09-23
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多