6.ActiveMQ非持久化消息【数据容量设置】

非持久化消息数据容量设置

       持久化消息存在文件中,非持久化消息存在内存中。能够存储的最大消息数据,取决于activemq安装目录下conf/activemq.xml文件中的broker标签下的systemUsage节点配置。SystemUsage配置设置了一些系统内存和硬盘容量

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}">
    <!--省略其他配置-->
    <systemUsage>
        <memoryUsage>
            <!-- 该标记设置整个ActiveMQ节点的"可用内存限制"。这个值不能超过ActiveMQ本身设置的足底啊内存大小-->
            <!-- 其中的percentOfJvmHeap属性标识百分比。占用70%的堆内存 -->
            <memoryUsage percentOfJvmHeap="70" />
        </memoryUsage>
        <storeUsage>
        <!-- 该标记设置整个ActiveMQ节点,用于存储"持久化消息"的可用磁盘空间。该标记的limit属性必须要进行设置 -->
            <storeUsage limit="100 gb"/>
        </storeUsage>
        <tempUsage>
            <!--ActiveMQ对存储做的优化。一旦ActiveMQ服务节点存储的消息达到了memoryUsage的限制-->
            <!--非持久化消息就会被转储到temp store区域,虽然我们说过非持久化消息不进行持久化存储-->
            <!--但是ActiveMQ为了防止"数据洪峰"出现时非持久化消息大量堆积致使内存耗尽的情况出现,-->
            <!--还是会将非持久化消息写入到磁盘的临时区域temp store。这个字标记就是为了设置这个-->
            <!--temp store区域的"可用磁盘空间限制" -->
            <tempUsage limit="50 gb"/>
        </tempUsage>
    </systemUsage>
    <!-- 省略其他配置 -->
</broker>

总结:

       从上面的配置,我们需要get到一个结论。当非持久化消息堆积到一定程度的时候,也就是内存超过指定的设置阈值时,ActiveMQ会将内存中的非持久化消息写入到临时文件,以便腾出内存但是它和持久化消息的区别是,重启之后,持久化消息会从文件中恢复,非持久化的临时文件会被直接删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值