2012-08-02 128 views
6

目前我们在ActiveMQ中使用KahaDB存储进行消息持久化,目前为止还不错。
根据ActiveMQ5.6的发行说明,LevelDB可提供增强的性能。
有没有人试过使用LevelDB,如果可以,你可以提供优点和缺点?任何使用LevelDB存储的ActiveMQ消息持久性?

回答

6

FYI:这是官方文档的链接为ActiveMQ LevelDB Store

缺点:

  • 这是一个新的品牌商店,所以仍可能留在它的一些错误。
  • LevelDB索引需要偶尔“压缩”,这可能会拖延新的写入。
  • 您不能只是删除索引并从数据文件中重建它,就像您可以使用KahaDB一样,使用KahaDB
  • KahaDB可以更优雅地处理磁盘损坏,恢复它的功能并丢弃损坏的记录。

优点:

  • 追加大多磁盘访问模式提高旋转磁盘上PERF。
  • 更少的磁盘同步比KahaDB
  • 较少的索引条目需要每存储的消息将被插入
  • 从磁盘装入的消息到存储器
  • 需要
  • 较少索引查找用途的Snappy压缩,以减少对索引的磁盘大小条目
  • 可选快速压缩数据日志。
  • 发送到复合目标仅将消息存储在磁盘上一次。
  • 更快更频繁的数据文件GC。
  • 有一个'Replicated' variation它可以自我复制到'奴隶'经纪人,以确保消息级HA。
+0

感谢您提及kahadb损坏的文件处理。我们有一些腐败的leveldb文件问题。 – 2014-08-25 15:11:29

5

我们一直在NFS上使用levelDB存储的一个月中的两个月(配置标准文件锁定故障切换)。在过去的几周里,我们已经多次出现了腐败的商店,在日志中没有错误,只是排队堆积,吞吐量非常低。我们唯一能做的就是解决这个问题,就是把商店扔掉,然后重新开始。

因此,我们现在再次切换回旧的可靠的KahaDB商店。

+0

你能否请你用你提供的关于你的设置的任何信息来记录一个错误来重现这个问题:https://issues.apache.org/jira/browse/AMQ – 2013-11-06 01:12:38