Producer Flow Control 和 vmQueueCursor

ActiveMQ可以开启或关闭生产者流量控制Producer Flow Control ,基本原理是producer 发送一条消息会收到broker返回的ack响应,当磁盘或内存快满的时候broker就会限制producer发送消息,让部分producer处于等待状态。

<destinationPolicy>
  <policyMap>
    <policyEntries>
      <policyEntry topic="FOO.>" producerFlowControl="false"/>
    </policyEntries>
  </policyMap>
</destinationPolicy>

 

vmQueueCursor参数主要针对非持久化消息,activemq5.0以后非持久化消息会存储在temp store磁盘空间以释放内存,如果我们希望非持久化消息全部存储在内存中,达到memorylimit后阻止producer继续发送,就可以这么使用

<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">    //memoryLimit指定单个queue分配的内存空间
  <pendingQueuePolicy>
    <vmQueueCursor/>
  </pendingQueuePolicy>
</policyEntry>

  

posted @ 2018-03-14 07:33  Peterer~王勇  阅读(558)  评论(0编辑  收藏  举报