【发布时间】:2014-08-23 09:57:13
【问题描述】:
我正在尝试在我的项目中使用ActiveMQ 5.8.0。有两种不同的存储配置,KahaDB 和LevelDB。根据问题,Kaha 可以比 Level 更快,或者 Level 可以比 Kaha 更快。
它们之间的真正区别是什么?
【问题讨论】:
标签: jms activemq difference leveldb
我正在尝试在我的项目中使用ActiveMQ 5.8.0。有两种不同的存储配置,KahaDB 和LevelDB。根据问题,Kaha 可以比 Level 更快,或者 Level 可以比 Kaha 更快。
它们之间的真正区别是什么?
【问题讨论】:
标签: jms activemq difference leveldb
这两个商店的相似之处在于它们都使用索引来跟踪写入日志的消息的位置和状态。不同之处在于索引的实施方式等。 LevelDB 是一个比 KahaDB 稍快的索引,并且可以提供更好的性能数据。在更高版本的 ActiveMQ 中,LevelDB 存储也支持复制。
鉴于您使用的是旧版本,其中 LevelDB 存储实现还很年轻,我建议坚持使用 KahaDB,因为它更加成熟并且已经解决了许多早期错误。 5.8 中的 LevelDB 存储并没有真正准备好生产,可能会给您带来一些麻烦。您可以迁移到最新版本 v5.10,LevelDB 将更加强大。
注意:LevelDB 已被社区弃用,不再受支持。它可能会在 ActiveMQ 5.17.0 中完全删除
【讨论】:
对于任何新项目,我都会远离 LevelDB for ActiveMQ。 KahaDB、LevelDB 的情况发生了一些变化。
LevelDB 存储已被弃用,不再受支持或建议使用。推荐的商店是 KahaDB
您将在 LevelDB 文档中看到这一点: http://activemq.apache.org/leveldb-store.html
因此,KahaDB、LevelDB 的情况发生了一些变化。我们考虑将 LevelDB 用于具有 3 个由 3 个 Zookeeper 实例监控的 ActiveMQ 实例的生产设置。原型工作得很好,除了在模拟 ActiveMQ 实例崩溃时,我们在该实例重启期间偶尔会遇到 LevelDB 损坏。
当需要持久消息传递时,您现在有以下选择:
【讨论】: