Active MQ VirtualTopic - 即使已分派到所有已定义/链接的队列,消息仍会入队

问题描述 投票:0回答:1

使用Active MQ 5.15.4并遵循http://activemq.apache.org/virtual-destinations.html的文档,在发送到VirtualTopic时,消息将被发送到所有连接的队列,但它们永远不会从发送它们的虚拟主题中出列。

我们需要手动清理虚拟主题吗?

将消息保留在主题中的原因是什么?它们可以在以后重新发送吗?但是当新队列链接到虚拟主题时,所有现有的排队消息都不会发送给它。

没有测试过这个,但连接队列中的消息是否与虚拟主题中发送的消息的持久性标志相关?

activemq
1个回答
1
投票

如果虚拟主题本身没有消费者,则保留的唯一消息是放置在Virtual Topic消费者的订阅队列上的消息。例如,如果您发送到VirtualTopic.FOO并且该主题或命名的Virtual Topic使用者队列(例如Consumer.A.VirtualTopic.FOO)上没有订阅,则该消息将被完全丢弃。如果在某个时刻消费者队列中有一些消费者,则发送到主题的消息然后被转发到队列,但主题本身不保留任何内容。

如果Virtual Topic本身有消费者,他们会收到发送给他们的消息,或者为他们保留消息,直到配置的待处理消息限制等。

消费者队列将遵循发送它们的MessageProducer指定的持久值。

© www.soinside.com 2019 - 2024. All rights reserved.