ActiveMQ-如何从配置设置持久性?

ActiveMQ-如何从配置设置持久性?,activemq,Activemq,我在activeMQ中有一个主题和三个队列。Producer将消息发布到主题,并在这三个队列中路由相同的消息。现在我的问题是: 我没有在producer中设置persistency,我也不想设置,因为一些项目限制。如何从ActiveMQ代理为主题和队列设置持久性?我使用的是ActiveMQ 5.15.12版本 我可以为一个队列设置持久性而不为另一个队列设置持久性吗 如果我不使用持久性,会发生什么?我知道在代理重启期间有可能丢失消息,但是有没有其他方法来克服这个问题 主题持久性部分由客户端控

我在activeMQ中有一个主题和三个队列。Producer将消息发布到主题,并在这三个队列中路由相同的消息。现在我的问题是:

  • 我没有在producer中设置persistency,我也不想设置,因为一些项目限制。如何从ActiveMQ代理为主题和队列设置持久性?我使用的是ActiveMQ 5.15.12版本

  • 我可以为一个队列设置持久性而不为另一个队列设置持久性吗

  • 如果我不使用持久性,会发生什么?我知道在代理重启期间有可能丢失消息,但是有没有其他方法来克服这个问题


  • 主题持久性部分由客户端控制(如果您设置了
    subscriptionID
    ),那么在重新连接时,您将收到任何挂起的消息。如果您不这样做,当客户端脱机时生成的任何消息都将丢失,并且永远不会传递给客户端。默认情况下,队列会保留消息的副本,直到确认为止。如果什么都不做,那么队列将不断增长,直到达到极限。我个人不确定您是否可以更改默认队列行为。我不相信ActiveMQ提供了在代理级别控制消息持久性的方法——除了“开”和“关”。据我所知,没有更细粒度的控件。当然,我可能错了。如果我是对的,那么可以创建一个ActiveMQ代理插件,在消息被接受时更改客户端的持久性标志;但我实际上没有尝试:/