如何使我的“最近的映像恢复策略”主题在代理重新启动后仍然有效?

时间:2019-01-21 23:10:18

标签: activemq

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

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

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

  1. 生产者发布N条消息
  2. 经纪人重新启动
  3. 消费者订阅该主题;什么都没收到

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

1 个答案:

答案 0 :(得分:2)

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