在activemq 5中,每个队列都有一个包含其数据和消息以及所有内容的文件夹。 这意味着在出现问题的情况下,例如磁盘空间不足错误。在服务器崩溃之前,某些文件将被损坏。在这种情况下,在activemq 5中,我们将找到指示文件损坏的日志,并且可以删除已损坏的队列文件夹,从而导致消息(而不是全部)消息的丢失很小。
在artemis中,似乎消息存储在相同的文件中,而与它们存储的队列无关。这意味着,如果我遇到磁盘空间不足的错误,则可能必须删除所有消息。
首先,您可以确认行为的变化,其次,是否可以恢复?另外,如果有人知道为什么会发生这种变化,我想了解一下。
答案 0 :(得分:0)
与5.x相比,Artemis使用全新的消息日志实现。所有邮件都使用相同的日记 。但是,它不会像5.x那样遇到相同的损坏问题。如果无法处理日记中的记录,那么将直接跳过它们。
如果遇到磁盘空间不足错误,则永远不需要删除所有消息。在实际使用日志文件之前,会先分配日志文件并填充零以满足其配置的大小,因此,如果磁盘空间不足,请在此过程中将其写入任何消息之前。
Artemis期刊的实现是从头开始编写的,以实现高性能,特别是结合了经纪人的非阻塞架构。