ActiveMQ 实战 - 内存设置、流控

在Apache ActiveMQ实战中,内存管理和流控设置对于保持消息中间件的稳定性和性能至关重要。以下是如何配置ActiveMQ的内存和流控制:

内存管理设置

1. 系统内存限制

activemq.xml配置文件中,可以通过systemUsage元素来设置系统的总体内存使用限制,包括内存、临时存储(如缓存)以及磁盘空间。

<systemUsage>
    <systemUsage>
        <!-- 设置总内存限制 -->
        <memoryUsage>
            <memoryUsage limit="64 mb"/>
        </memoryUsage>

        <!-- 设置临时存储空间大小 -->
        <tempUsage>
            <tempUsage limit="50 gb"/>
        </tempUsage>

        <!-- 设置持久化存储的限制 -->
        <storeUsage>
            <storeUsage limit="200 gb"/>
        </storeUsage>

        <!-- 设置非持久化消息的磁盘使用限制 -->
        <journalUsage>
            <journalUsage limit="100 gb"/>
        </journalUsage>
    </systemUsage>
</systemUsage>
2. 队列内存限制

为单个队列设置内存限制,可以在queuetopic配置中添加memoryLimit属性:

<queues>
    <queue name="MyQueue">
        <entry>queue://MyQueue</entry>
        <durable>true</durable>
        <memoryLimit>10 mb</memoryLimit>
    </queue>
</queues>

流控设置

流控是为了防止生产者发送消息的速度过快,导致系统资源耗尽。ActiveMQ提供了多种流控策略。

1. 系统全局流控

systemUsage标签内,可以设置globalMaxSize属性以启用系统级的流量控制:

<systemUsage>
    ...
    <memoryUsage>
        <memoryUsage global="false" limit="64 mb" percentOfJvmHeap="70" />
    </memoryUsage>
    <!-- 全局流控 -->
    <systemUsage>
        <systemUsage>
            <globalMaxSize>100Mb</globalMaxSize>
            ...
        </systemUsage>
    </systemUsage>
</systemUsage>

当系统内存使用量达到globalMaxSize时,会触发全局流控,阻止更多的消息进入broker。

2. 队列或主题级别流控

针对特定队列或主题,可以在其配置中启用流控:

<queues>
    <queue name="MyQueue">
        ...
        <flowControl>
            <byteRate>10240</byteRate> <!-- 每秒允许流入的字节数 -->
            <byteLimit>1048576</byteLimit> <!-- 字节总量限制 -->
            <messageRate>1000</messageRate> <!-- 每秒允许流入的消息数 -->
            <messageLimit>10000</messageLimit> <!-- 消息总量限制 -->
        </flowControl>
    </queue>
</queues>

当队列或主题的流入速率超过设定值时,将暂停生产者的发送操作。

请注意,具体的配置选项可能会因ActiveMQ版本不同而有所差异,请参照实际使用的ActiveMQ版本文档进行设置。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值