ActiveMQ Artemis 不是持久性的

Nik*_*ran 1 queue jms activemq-artemis

我使用ActiveMQ Artemis进行数据传递,但队列中的数据不是持久的。

当我使用 artemis.cmd stop 关闭服务器并使用 artemis.cmd run 重新启动时,队列中的消息计数变为 0。

经纪人.xml:

<persistence-enabled>true</persistence-enabled>
<max-disk-usage>100</max-disk-usage>
Run Code Online (Sandbox Code Playgroud)

Jus*_*ram 5

需要考虑一些代理和客户端详细信息,以确保消息持久保存到磁盘上。

  1. 确保使用在代理上启用持久性<persistence-enabled>true</persistence-enabled>。您已经完成了此操作,因此您的状态良好。
  2. 确保<queue>您使用的设备“耐用”。这是true默认情况下的,因此不需要在队列上显式设置,但如果您想设置它,可以使用<durable>true</durable>.
  3. 确保您的客户端以持久方式发送消息。不同的协议和 API 有不同的默认值,因此它实际上取决于您所使用的内容以及如何配置消息本身的持久性。

需要明确的是,该<max-disk-usage>参数不控制消息持久性。它控制代理在开始阻止消息生成之前将消耗的磁盘量。