Artemis 与 Activemq 5 消息存储
Artemis vs Activemq 5 message store
在 activemq 5 中,每个队列都有一个包含其数据和消息的文件夹,所有内容。
这意味着,如果出现问题,例如磁盘不足 space 错误。有些文件会在服务器崩溃前损坏。在那种情况下,在 activemq 5 中,我们会找到指示损坏文件的日志,并且我们可以删除损坏的队列文件夹,从而导致少量消息丢失而不是所有消息丢失。
在 artemis 中,消息似乎存储在相同的文件中,独立于它们存储的队列。这意味着如果我遇到磁盘不足 space 错误,我可能必须删除所有我的消息。
第一,你能确认行为的变化吗,其次,有没有办法恢复?还有一个奖金,如果有人知道为什么会发生这种变化,我很想理解。
与 5.x 相比,Artemis 使用全新的消息日志实现。所有消息都使用相同的日志 。但是,它不会像您在 5.x 中看到的那样受到相同的损坏问题的影响。如果无法处理日志中的记录,则直接跳过它们。
如果您遇到磁盘不足 space 错误,您永远不需要删除所有消息。日志文件本身被分配并填充零以满足它们在实际使用之前配置的大小,所以如果你要 运行 磁盘 space 你会在任何消息之前的那个过程中这样做写给他们。
Artemis 日志实现是从头开始编写的,以实现高性能,特别是与代理的非阻塞架构相结合。
在 activemq 5 中,每个队列都有一个包含其数据和消息的文件夹,所有内容。 这意味着,如果出现问题,例如磁盘不足 space 错误。有些文件会在服务器崩溃前损坏。在那种情况下,在 activemq 5 中,我们会找到指示损坏文件的日志,并且我们可以删除损坏的队列文件夹,从而导致少量消息丢失而不是所有消息丢失。
在 artemis 中,消息似乎存储在相同的文件中,独立于它们存储的队列。这意味着如果我遇到磁盘不足 space 错误,我可能必须删除所有我的消息。
第一,你能确认行为的变化吗,其次,有没有办法恢复?还有一个奖金,如果有人知道为什么会发生这种变化,我很想理解。
与 5.x 相比,Artemis 使用全新的消息日志实现。所有消息都使用相同的日志 。但是,它不会像您在 5.x 中看到的那样受到相同的损坏问题的影响。如果无法处理日志中的记录,则直接跳过它们。
如果您遇到磁盘不足 space 错误,您永远不需要删除所有消息。日志文件本身被分配并填充零以满足它们在实际使用之前配置的大小,所以如果你要 运行 磁盘 space 你会在任何消息之前的那个过程中这样做写给他们。
Artemis 日志实现是从头开始编写的,以实现高性能,特别是与代理的非阻塞架构相结合。