ActiveMQ Artemis 与 ActiveMQ“经典”消息存储

问题描述 投票:0回答:1

在 ActiveMQ“经典”5 中,每个队列都有一个文件夹,其中包含其数据和消息等所有内容。 这意味着,如果出现问题,例如磁盘空间不足错误。某些文件会在服务器崩溃之前损坏。在这种情况下,在 ActiveMQ“经典”5 中,我们会找到指示损坏文件的日志,并且我们可以删除损坏的队列文件夹,从而导致少量消息丢失,而不是所有消息丢失。

在 ActiveMQ Artemis 中,消息似乎存储在同一个文件中,独立于它们存储的队列。这意味着如果我收到磁盘空间不足错误,我可能必须删除所有消息。

首先,你能否确认行为的改变,其次,有没有办法恢复?还有一个额外的好处,如果有人知道为什么会发生这种变化,我想理解。

activemq storage activemq-artemis
1个回答
0
投票

与 5.x 相比,Artemis 使用全新的消息日志实现。所有消息都使用同一个日志。但是,它不会遇到与 5.x 相同的损坏问题。如果日志中的记录无法处理,那么它们就会被跳过。

如果出现磁盘空间不足错误,您永远不需要删除所有消息。日志文件本身在实际使用之前会被分配并用零填充以满足其配置的大小,因此如果您要耗尽磁盘空间,您可以在向日志文件写入任何消息之前在此过程中执行此操作。

Artemis 日志实现是为了高性能而从头开始编写的,特别是与代理的非阻塞架构结合使用。

© www.soinside.com 2019 - 2024. All rights reserved.