KahaDB和LevelDB - 真正的区别是什么?

时间:2014-07-02 14:37:57

标签: jms activemq difference leveldb

我试图在我的项目中使用ActiveMQ 5.8.0。有两种不同的存储配置KahaDBLevelDB。根据问题,Kaha可以比Level更快或Level可以比Kaha更快。

它们之间的真正区别是什么?

2 个答案:

答案 0 :(得分:2)

这两个商店的相似之处在于它们都利用索引来跟踪写入日记的消息的位置和状态。差异在于指数在其他方面的实施方式。 LevelDB是一个比KahaDB略快的索引,可以提供更好的性能数字。在ActiveMQ的后续版本中,LevelDB存储还支持复制。

鉴于您使用的是LevelDB商店实现仍然非常年轻的旧版本,我建议坚持使用KahaDB,因为它更成熟并且已经解决了许多早期错误。 5.8中的LevelDB存储不是真正的生产就绪,可能会给您带来一些麻烦。您可以转到最新版本v5.10,而LevelDB将更加强大。

答案 1 :(得分:2)

对于任何新项目,我都会远离LevelDB for ActiveMQ。 KaDBDB,LevelDB图片有所改变。

  

LevelDB商店已被弃用,不再支持或建议使用。推荐的商店是KahaDB

您将在LevelDB文档中看到这一点: http://activemq.apache.org/leveldb-store.html

所以KahaDB,LevelDB图片有所改变。我们考虑将LevelDB用于3个Zookeeper实例监控的3个ActiveMQ实例的生产设置。原型工作得相当不错,除非模拟ActiveMQ实例崩溃,我们在重启该实例期间偶尔会遇到LevelDB损坏。

当需要持久消息传递时,您现在有以下选择:

  • 将Apache ActiveMQ和数据库用作持久性消息存储(jdbc)
  • 为KahaDB消息存储使用共享块级别或文件级别共享文件系统(NFS,CIFS甚至GlusterFS)并使用ActiveMQ Master / Slave
  • Apache ActiveMQ Artemis
  • Apache Kafka