【问题标题】:ActiveMQ define message consumer when more than one consumerActiveMQ 定义多个消费者时的消息消费者
【发布时间】:2016-06-08 13:26:16
【问题描述】:

我正在使用ActiveMQ,我在生产环境中有一个Queue 和一个消费者

为了进行集成测试,我创建了一个使用 JNDI 连接到 ActiveMQ 代理并从同一个队列中消费的小型应用程序。我想要的是分离测试消息并只使用它们。

有没有办法定义谁应该是消息的消费者?或者任何其他可以帮助我实现这一目标的解决方案?

我知道一种解决方案是使用镜像队列,但我不想为了测试目的而修改我的代码。

【问题讨论】:

  • 您可以创建一个 v-host 并在其中创建队列,并将生产者和消费者都指向该 v-host...这样可以吗?
  • 你能详细说明一下吗?
  • 单个mq服务器可以包含多个主机,默认使用根主机/。但是我们可以添加更多的 v-hosts。如果你创建一个新的 v-host,我们可以在其中定义队列、绑定、交换等。有点像在同一个系统中运行的两个 VM。每个 v-hosts 都是完全隔离的。 mq 客户端可以选择指定要连接到哪个 v-host。我是根据我对 RabbitMQ 的经验说的。你可以查看这个activemq.apache.org/apollo/documentation/…

标签: java activemq


【解决方案1】:

为什么在生产环境中需要测试消息? (这很容易成为一个定时炸弹)。如果你足够勇敢(并且可能鲁莽:D),你可以使用message selector,这样生产消费者就不会消费标记为测试的消息,而你的测试消费者只消费测试消息。

请记住,当您使用此功能时,某些 JMS 代理可能会大大减慢速度。

【讨论】:

  • 我不会在生产环境中运行测试,抱歉我没有解释清楚,它将在测试环境中运行。
  • 您是否考虑过为您的测试环境使用不同的代理实例?
  • 代理不是我系统的一部分。
猜你喜欢
  • 2021-03-06
  • 2015-11-25
  • 1970-01-01
  • 2014-10-23
  • 2014-08-06
  • 2011-03-12
  • 2012-01-10
  • 1970-01-01
  • 2020-06-17
相关资源
最近更新 更多