6

目前我们正在使用 KahaDB 存储在 ActiveMQ 中进行消息持久性,到目前为止效果很好。
根据 ActiveMQ5.6 的发行说明,LevelDB提供增强的性能。
有没有人试过usign LevelDB,如果是的话,你能提供利弊吗?

4

5 回答 5

6

仅供参考:这是ActiveMQ LevelDB 存储的官方文档的链接

缺点:

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

优点:

  • 附加大部分磁盘访问模式可提高旋转磁盘的性能。
  • 磁盘同步次数少于 KahaDB
  • 每条存储的消息需要插入更少的索引条目
  • 将消息从磁盘加载到内存所需的索引查找更少
  • 使用 Snappy 压缩来减少索引条目的磁盘大小
  • 数据日志的可选 Snappy 压缩。
  • 发送到复合目标仅将消息存储在磁盘上一次。
  • 更快、更频繁的数据文件 GC。
  • 有一个“复制”变体,它可以自我复制到“从”代理,以确保消息级别的 HA。
于 2013-05-15T14:13:03.223 回答
5

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

所以我们现在再次切换回旧的可靠的 KahaDB 存储。

于 2013-10-01T08:24:05.513 回答
3

请参阅此链接:https ://github.com/fusesource/fuse-extra/tree/master/fusemq-leveldb#how-to-use-with-activemq-56 leveldb 与 kahadb 有一个小的比较。

我目前正在一个具有高消息吞吐量的系统上尝试它,并且我已经看到了更好的结果。我仍然需要看看它是否稳定,但到目前为止还不错。

于 2012-08-09T15:07:36.737 回答
2

为 LevelDB 做出的大多数性能声明似乎都是空洞的声明。它应该支持高并发读取,但多线程测试显示没有并发增益。https://github.com/ayende/raven.voron/pull/9#issuecomment-29764803

(相比之下,LMDB 显示了跨多个 CPU 读取的完美线性性能提升。https://github.com/ayende/raven.voron/pull/9#issuecomment-29780359

于 2013-12-09T14:53:32.247 回答
1

我对 AMQ 性能进行了广泛的测试,在我的测试中无法获得 LevelDB 与 KahaDB 之间的任何统计显着差异:http ://whywebsphere.com/2015/03/12/ibm-mq-vs-apache-activemq-性能比较更新/

于 2015-07-01T22:06:00.057 回答