持久性消息在虚拟目标持久性存储上发送

时间:2014-09-04 06:08:22

标签: java jms activemq middleware

确认和持久性如何与虚拟目标一起使用?

如果我有一个虚拟主题" VirtualTopic.A"和两个消费者 1.排队这个虚拟主题" Consumer.B.VirtualTopic.A",
2.持久的消费者订阅了这个VirtualTopic

然后在VirtualTopic.A上发送的所有持久消息将被存储为Queue" Consumer.B.VirtualTopic.A"同样。

为什么会发生这种情况,是否有办法禁用此功能?

当所有订阅该队列的消费者都没有订阅时,有没有办法禁用它?

1 个答案:

答案 0 :(得分:1)

不,不幸的是没有。

虚拟主题的要点正是您所描述的行为。这是一种允许发布/类似行为的方法,但允许队列的持久性。基本上任何与您的虚拟主题定义匹配的队列都成为该定义中主题的订阅者。与具有生产者的普通队列一样,不需要消费者使用消息来生成该队列。

如果您在消费者关闭时不关心丢失的消息,那么您应该选择正常的主题订阅者,而不是消费者从虚拟主题队列中消费。