【问题标题】:ActiveMQ persistence store for large message size用于大消息大小的 ActiveMQ 持久存储
【发布时间】:2014-11-05 10:08:02
【问题描述】:

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

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

leveldb:默认情况下,100mB 是存储消息数据的默认大小。之后发生滚动。 IF 消息超过 100mB。它是如何处理的?

谢谢,
阿努杰

【问题讨论】:

    标签: activemq leveldb


    【解决方案1】:

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

    此外,KahaDB 以 BTree 的形式保存消息的索引。这些 Btree 索引保存对由消息 ID 索引的数据日志中的消息的引用。简而言之,KahaDB 将借助该索引准确地知道您的消息存储在哪里。因此,不需要为存储此消息添加任何新配置

    关于单个数据日志文件中的整个消息,我不确定是否需要进行一些研究 在尝试更改 KahaDB 的 journalSizeLength 之前,请先通过这个 link(阅读 cmets 可能会有帮助)

    祝你好运!

    希望对你有帮助。

    【讨论】:

    • 当我测试时,我发现它不会为相同的消息滚动日志。相反,它保持大小灵活,如果我发送 200MB 的消息,kahadb 将创建 200MB 的日志。所以看起来 kahadb 必须在同一个文件中保留一条消息,即使它超过了日志大小的限制。我已经看到 levelDB 的相同行为。如果我对此有误,请纠正我。
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 2018-09-22
    • 2015-08-22
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2011-10-12
    相关资源
    最近更新 更多