用于大消息大小的ActiveMQ持久性存储

用于大消息大小的ActiveMQ持久性存储,activemq,leveldb,Activemq,Leveldb,如果生产者正在发送大消息大小的消息(比如120MB)。kahadb和levelDB如何处理此类消息 卡哈布:据我所知,日志大小默认为32MB。如果我发送的消息超过32MB,它将如何处理此类消息?是否需要根据邮件大小将此大小更改为适当的值 leveldb:默认情况下,100mB是存储消息数据的默认大小。然后进行滚动。如果消息超过100mB。它是如何处理的 谢谢, ANuj对于Kahadb,我们有消息的滚动日志,消息和命令存储在固定长度的数据文件中,如果长度超过消息日志的大小,则创建新文件。 Kah

如果生产者正在发送大消息大小的消息(比如120MB)。kahadb和levelDB如何处理此类消息

卡哈布:据我所知,日志大小默认为32MB。如果我发送的消息超过32MB,它将如何处理此类消息?是否需要根据邮件大小将此大小更改为适当的值

leveldb:默认情况下,100mB是存储消息数据的默认大小。然后进行滚动。如果消息超过100mB。它是如何处理的

谢谢,

ANuj

对于Kahadb,我们有消息的滚动日志,消息和命令存储在固定长度的数据文件中,如果长度超过消息日志的大小,则创建新文件。 KahaDB只是将新消息附加到现有日志中,并负责创建新日志

此外,KahaDB以BTree的形式保存消息的索引。这些BTree索引保存对数据日志中消息的引用,这些消息通过其消息ID进行索引。简言之,KahaDB将通过该索引准确地知道消息存储在何处。因此,不需要添加任何用于存储此消息的新配置

关于单个数据日志文件中的整个消息,我不确定是否需要进行bit研究 在尝试为KahaDB更改日志长度之前,请先完成此操作 (阅读评论可能会有所帮助)

祝你好运


希望有帮助。

当我测试时,我发现它不会滚动相同消息的日志。相反,它保持大小灵活,如果我发送200MB的mesage,kahadb将创建200MB的日志。因此,看起来kahadb必须在同一个文件中保留一条消息,即使它超出了日志大小的限制。我在levelDB中看到了相同的行为。如果我错了,请纠正我。