消息在什么时间点从主题中删除?

use*_*603 3 java activemq-classic jms jms-topic

我有一个话题。我有 10 个消费者订阅了它。根据我的理解,当所有消费者都收到一条消息时,该消息将从主题中删除。正确的?一旦删除,任何其他订阅者将不会收到该特定消息的通知。我无法在任何地方的 JMS 规范中确认这一点。

Sha*_*shi 5

代理(在您的情况下为 Active MQ)将向所有活动订阅者交付发布,包括持久订阅者和非持久订阅者(意味着在主题上发布发布并消费消息时运行的消费者应用程序以及任何不活动的持久订阅者) )。然后经纪人将丢弃该出版物。如果某个主题没有活跃订阅者或持久订阅者,代理将立即丢弃该发布。它不会等待任何订阅者变得活跃。唯一的例外是在执行“保留发布”选项的情况下,代理将缓存发布并交付给稍后可能到达的消费者。但请注意,代理不会等待所有消费者都收到发布内容,然后再将其从主题中删除。我想说没有什么比“从主题中删除”更好的了。

希望我说清楚了。