如何使我的“上次映像恢复策略”主题在代理重新启动后继续有效



我已经在ActiveMQ中使用lastImageSubscriptionRecoveryPolicy配置了一个主题。它按预期工作,因为代理保留发送到主题的最后一条消息,当新使用者订阅该主题时,它会收到最后一条消息:

  1. 生产者发布 N 条消息
  2. 使用者 A 订阅主题;收到 1 条消息
  3. 使用者 B 订阅该主题;收到相同的 1 条消息

但是,当我重新启动代理时,该消息会丢失。以下是事件的顺序:

  1. 生产者发布 N 条消息
  2. 代理重新启动
  3. 使用者订阅该主题;未收到任何内容

是否可以启用最后一条消息(最后映像)的持久性,以便即使在代理重新启动后也能持久保存?

不,这是不可能的。 如果需要消息持久性,则需要使用队列,或使用持久主题订阅,以便在重新启动后保留消息。 代理为主题(如恢复策略)提供了一些便利功能,但它们并不能真正替代基于队列的消息传递存在的更强大的保证,因此如果需要,则必须使用这些机制。

相关内容

最新更新