【ActiveMQ Tuning】vmCursor on Destination

Overview:在ActiveMQ的Broker中,一个cursor用来持有一批内存中消息,这是一批正在等待发送到目标地址的消息。默认的,这批消息是从消息存储中取出,并且指向一个cursor(这是存储游标)

http://fusesource.com/docs/broker/5.4/tuning/PersTuning-vmCursor.html  

 

ActiveMQ有另一种游标实现,VM cursor,在某些情境下非常快。VM cursor是,进入的消息直接关联cursor,同时存储到消息存储中。(关联cursor的同时存储到消息存储中)。如果消费者(consumer)非常快,可以跟的上消息流的话,VM cursor会工作的非常好。但是,对于慢消费者,这个策略就不是那么有效了。VM cursor被积压的消息填满,同时它可能会去调用流控制去抑制producer生产message。

配置vmcursor:下面配置了一个borker的所有topic和queue都使用了vmCursor

<broker ... >
  ...
  <destinationPolicy>
    <policyMap>
      <policyEntries>
        <policyEntry topic=">">
          <pendingSubscriberPolicy>
            <vmCursor />
          </pendingSubscriberPolicy>
        </policyEntry>
        <policyEntry queue=">">
          <pendingSubscriberPolicy>
            <vmCursor />
          </pendingSubscriberPolicy>
        </policyEntry>
      </policyEntries>
    </policyMap>
  </destinationPolicy>
  ...
</broker>
topic和queue都使用了通配符【>】,这个匹配所有的目标名称。你可以根据情况指定一些选择目标的模式。但是VM Cursor仅仅适用于那些消费者可以跟得上目标消息节奏的这种情况。

posted on 2012-07-24 16:19  南郭先生kaka  阅读(734)  评论(0编辑  收藏  举报

导航