ActiveMQ Artemis不是持久性的



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

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

经纪人.xml :

<persistence-enabled>true</persistence-enabled>
<max-disk-usage>100</max-disk-usage>

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

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

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

最新更新