Activemq 如何使上一个映像恢复策略主题在代理重新启动后仍然有效?

Activemq 如何使上一个映像恢复策略主题在代理重新启动后仍然有效?,activemq,Activemq,我已使用lastImageSubscriptionRecoveryPolicy在ActiveMQ中配置了一个主题。它的工作原理与预期一致,因为代理持久化发送到主题的最后一条消息,并且当新消费者订阅该主题时,它会收到最后一条消息: 制作人发布N条消息 消费者A订阅该主题;收到1条信息 消费者B订阅该主题;收到相同的1条消息 但是,当我重新启动代理时,消息将丢失。以下是事件的顺序: 制作人发布N条消息 代理重新启动 消费者订阅该主题;没有收到任何东西 是否可以启用最后一条消息(最后一个映像)的持久性

我已使用lastImageSubscriptionRecoveryPolicy在ActiveMQ中配置了一个主题。它的工作原理与预期一致,因为代理持久化发送到主题的最后一条消息,并且当新消费者订阅该主题时,它会收到最后一条消息:

  • 制作人发布N条消息
  • 消费者A订阅该主题;收到1条信息
  • 消费者B订阅该主题;收到相同的1条消息
  • 但是,当我重新启动代理时,消息将丢失。以下是事件的顺序:

  • 制作人发布N条消息
  • 代理重新启动
  • 消费者订阅该主题;没有收到任何东西

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

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

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