2


我已经配置了两台机器,每台机器都有 10 个消费者,它们监听在第三台机器上运行的同一个 activemq 队列。但是只有一台机器的消费者正在从队列中读取消息,而另一台则处于空闲状态

我预计 activemq Web 控制台上有 20 个消费者,但只能看到 10 个。
可能是什么问题?应用程序端或 activemq 端的任何配置更改?

我正在使用 spring-jms(org.springframework.jms.listener.DefaultMessageListenerContainer) 和 activemq 5.8.0

更新:
主题不是我的选择。我只希望一位消费者阅读一条消息。
我有以下场景: machine1 = activemq
machine2 = consumer1 to consumer10
machine3 = consumer11 to consumer20

我观察到只有来自 machine2 的消费者正在从队列中弹出消息
我想要的是,来自 machine2 和 machine3 的消费者都应该阅读消息。


提前致谢。

4

2 回答 2

1

看起来您需要的是消息主题,而不是消息队列。主要区别在于队列类似于电子邮件帐户。一旦您阅读了该消息,它就会消失。这就是为什么看起来只有一个客户端处于活动状态的原因,因为它们可能共享同一个队列。

另一方面,消息主题将在消息发送到主题后立即将消息传递给所有连接的客户端。

于 2013-11-12T10:55:29.333 回答
-1
  • 能否关掉 machine2 上的消费者,看看消息是否被 machine3 上的消费者消费了?

  • 您能否提供如何从 machine3 连接的配置?

于 2013-11-20T12:58:35.510 回答