KahaDB持久化性能

KahaDB message store:KahaDB 是ActiveMQ Broker 为了高性能而推荐使用的消息存储机制。KahaDB支持多种性能选项供你进行调整,以获得最优性能。

Normal dispatching through a persistent broker(持久化Broker常规分发):Figure2.1 持久化Broker的常规分发步骤总览

    persist_02

       从Producer接收消息后,Broker会按照如下的几个步骤分发消息给消费者:

  1. Broker把消息存到Message Store中,如果enableJournalDiskSyncstrue,消息会在borker继续处理之前存储到磁盘上。
  2. 现在Broker发送消息给所有感兴趣的consumers,(但不需要等待Consumer的确认).Topics是立即发送,Queue则是由Broker增加消息到一个目标游标(Cursor)
  3. Broker给与Producer一个签收反馈。

Concurrent store and dispatch:为了提高Broker的性能,你可以设置concurrent store and dispatch选项,允许存储消息和发送消息给消费者同时进行。

Figure 2.2图表展示了消息存储和分发的并行操作。(原文是2.1,个人感觉有错误)

 

Figure 2.2. Concurrent Store and Dispatch

 

 

persist_03

从Producer接收消息后,Broker会按照如下的几个步骤分发消息给消费者:

  1. Broker把消息存到Message Store中,同时,发送消息给所有感兴趣的消费者(consumer),发送完毕后,Broker会给与Producer一个签收反馈,而这个反馈不需要等待消费者的确认或者消息是否已经序列化到磁盘上。
  2. 一收到所有的消费者反馈后,Broker就把消息从消息存储中移除。consumer的反馈通常会比消息存到到磁盘上快,这就意味着消息存储到磁盘上的步骤会被优化掉。这是因为消息会在存储到磁盘之前就从消息存储中被移除掉了。

Configuring concurrent store and dispatch:concurrent store and dispatch 的特性在Queue和Topic分别由concurrentStoreAndDispatchQueuesconcurrentStoreAndDispatchTopics 进行设置。Queue默认是设置为True,但是Topic则是false,如果需要设置为true,需要参照如下,配置Broker中kahaDB项:

 

<broker brokerName="broker" persistent="true" useShutdownHook="false">   ...   <persistenceAdapter>     <kahaDB directory="activemq-data"             journalMaxFileLength="32mb"             concurrentStoreAndDispatchQueues="true"             concurrentStoreAndDispatchTopics="true"             />   </persistenceAdapter> </broker>

源自:http://www.cnblogs.com/kaka/archive/2012/07/24/2606204.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值