You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ActiveMQ Artemis中限制大消息存储?

ActiveMQ Artemis大消息限制方案

可用的地址级限制参数

ActiveMQ Artemis 提供了两个核心参数来管控大消息的存储占用,完全满足你"仅影响对应租户"的隔离需求:

  • max-size-bytes:该参数统计地址的总持久化占用(包含分页消息、大消息、绑定数据及日志,即你提到的"Persistent Size")。当地址的总占用达到设定值时,会触发page-full-policy的行为(比如你配置的FAIL),直接阻止该地址的生产者发送消息,不会影响其他租户。
  • max-large-message-size:单独限制单条大消息的大小,超过此阈值的大消息会被Broker直接拒绝,从源头避免超大消息占用存储。

配置示例

在broker.xml的address-settings节点中,针对目标租户的地址添加配置:

<address-settings>
    <address-setting match="tenant-specific-address">
        <!-- 限制地址总持久化大小(含大消息) -->
        <max-size-bytes>10737418240</max-size-bytes> <!-- 10GB -->
        <!-- 限制单条大消息最大尺寸 -->
        <max-large-message-size>1073741824</max-large-message-size> <!-- 1GB -->
        <!-- 超限后拒绝生产者发送 -->
        <page-full-policy>FAIL</page-full-policy>
        <!-- 保留原有普通消息分页限制(可选) -->
        <page-limit-bytes>5368709120</page-limit-bytes> <!-- 5GB -->
    </address-setting>
</address-settings>

关键说明

  • max-size-bytes会将large-messages目录的占用纳入统计,解决了你之前无法追踪大消息存储的问题。
  • 该配置是地址级别的,仅作用于匹配的地址,实现租户资源隔离,不会像全局max-disk-usage那样影响所有用户。
  • max-size-bytes优先级高于page-limit-bytes,当总占用达到阈值时,无论分页限制是否触发,都会执行设定的超限策略。

内容的提问来源于stack exchange,提问作者Priyabrat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:25:09