【问题标题】:Which embedded messaging system -> ActiveMQ or HornetQ哪个嵌入式消息系统 -> ActiveMQ 或 HornetQ
【发布时间】:2011-06-01 09:16:51
【问题描述】:

我希望能就这两个消息系统中的哪一个提供一些一般性的指示和意见

  • 更易于管理
  • 需要了解和避免的陷阱或魔法内容更少
  • 总体依赖较少
  • 使用简单。

【问题讨论】:

  • 我没有使用过HornetQ,但我可以说ActiveMQ 可能是全部四个。如果你使用 JBoss,HornetQ 可能有更好的集成。 ??
  • 我想在没有 Jboss AS 的情况下使用它。无论一个人使用还是不使用 JBossAS,都不应该对其关键的可观察特性产生任何影响。
  • 如果您正在寻找可以帮助您做出某种决定的人。 ActiveMQ 肯定不会出错(除了 Spring dep 的小问题)。两年多来,我一直在愤怒地使用它,在全球范围内进行了大量投资,但我只遇到过一个重大问题,并且通过简单的升级就解决了。
  • 我们还将 AMQ 嵌入到我们的测试套件中,没有什么麻烦。
  • 我认为更有用的方法是清楚地了解两者的不同之处。如果有人知道每个目标的目标问题是什么,那也很好

标签: java jboss jms activemq hornetq


【解决方案1】:

Apache ActiveMQ Artemis 是要走的路

HornetQ 代码库已捐赠给 Apache ActiveMQ 项目,HornetQ 社区也加入了该项目,以增强捐赠的代码库并创建下一代消息传递代理。结果是 Apache ActiveMQ Artemis。

【讨论】:

    【解决方案2】:

    更容易管理

    hornetQ 有一个清晰的管理 API 并且非常易于使用。

    需要知道和避免的陷阱或魔法东西更少

    hornetQ 是为嵌入式外壳制作的。将它集成到您​​的代码中非常非常容易。事实上,您只需不到 10 行代码即可完成。

    整体依赖较少

    HornetQ 上的一切都是模块化的。 HornetQ 唯一需要的依赖是 Netty,它是网络提供者。

    使用起来很简单。

    HornetQ 使用起来非常简单。 API清晰,主要是文档非常非常完整。

    您无需购买任何书籍即可使用 HornetQ。所有文档都在 hornetq 的网站上免费提供。

    【讨论】:

    • 感谢 Clebert 的回答以及您在总部的辛勤工作!我忘记了我的问题,但你的笔记是对的。越是进入总部,就越会欣赏它的酷炫程度。
    • 我已经尝试将 HornetQ 和 ActiveMQ 作为我们的应用程序的 JMS 代理,这会产生非常高的负载。 HornetQ 在性能和可靠性方面获胜。不幸的是,这两个项目都缺乏文档。例如,设置 HornetQ 机器集群对我来说是一场噩梦 :(
    【解决方案3】:

    首先,我有偏见。我是 HornetQ 项目的创始人,虽然我不再从事这个项目。

    为什么选择 HornetQ 而不是 ActiveMQ?这里有几个很好的理由:

    1. HornetQ 比 ActiveMQ 快得多。 http://community.jboss.org/wiki/HornetQPerformance

      事实上,HornetQ 是市场上排名第一的最快的企业消息系统。或者至少,当我们去年在市场上对其进行测试时是这样。 (我们针对前 11 个左右的 JMS 实现对其进行了测试)

    2. 功能。 HornetQ 有一个完整的“企业”功能集,你希望看到。功能列表在这里http://community.jboss.org/wiki/HornetQFeatures

      您会发现 HornetQ 具有与您在 ActiveMQ 中找到的大多数功能等价的功能,以及您在 ActiveMQ 中找不到的其他功能

    3. 最近对集群进行了大修,因此它坚如磐石。如果您对集群有任何不满,请使用论坛。 HornetQ 团队将很乐意回应任何感知到的问题。

    4. 被许多知名人士用于生产,包括大型金融组织和其他,例如 last.fm

    5. 值得信赖,成为 JBoss AS 7 中的核心消息传递技术。世界上最受欢迎的 Java 应用服务器的最新版本。

    6. 与协议无关的架构。 HornetQ 与 ActiveMQ 不同,它不是围绕 JMS 构建的。在 HornetQ 中,核心服务器与协议/API 无关——它是一个通用的消息服务器。 STOMP/JMS/REST/Websockets 等各种协议/API 作为瘦适配器添加到通用核心。这使它更加灵活。

    【讨论】:

      【解决方案4】:

      在决定使用 ActiveMQ 之前,我对两者进行了广泛的评估。它经过验证且稳定,是您在消息传递系统中想要的东西。我已经在两个大型系统上使用了 ActiveMQ,并取得了巨大的成功。不久前,当 HornetQ 声称比 ActiveMQ 更快时,有一些炒作,所以我看了一下。 HornetQ 的集群存在一些严重缺陷,这可能导致消息丢失和服务器试图无限期地连接到故障节点。 HornetQ 的首席开发人员拒绝承认 HornetQ 的缺陷,并且在用户论坛上表现得相当防御,这应该让你对产品非常警惕。

      【讨论】:

      • 关于你的观点(“HornetQ 拒绝承认 HornetQ 中的缺陷,并且在用户论坛上非常防御,这应该让你对产品非常警惕。”)我不认为那是案子。如果是,那就不再是了。我目前是 HornetQ 的负责人,我们已经对 HornetQ 2.2.2 和 2.2.5 进行了一些重构,并且我们正在对 2.3.0 进行一些额外的重大改进,我们希望得到任何反馈
      • 您使用的是 AMQ 嵌入式还是远程代理?
      【解决方案5】:

      我在日常工作中大量使用 ActiveMq,并且对您提出的大部分观点都给予了很高的评价。我特别依赖 JMX 管理控制台,它是一流的。

      我也一直在密切关注 HornetQ,也许有一天也会增加对它的支持。从我所见,HornetQ 的重量更轻一些,并且有一些非常好的 NIO 优化,应该可以让它飞起来。但缺少一些 ActiveMQ 提供的企业集成功能,可能还有一些管理功能。然而,据我所知,HornetQ 团队正在努力填补这些空白。

      在我看来,这两种选择都不会出错。尝试一下,看看哪个感觉更好。

      【讨论】:

      • 我在查看 ActiveMQ 时不喜欢的一件事是它对 Spring 的依赖(如果我错了,请纠正我)。在 Spring 中糟透了,在你知道它之前,你有很多依赖项。 HornetQ 只需要 netty 和 slf4j。我无法评论它更令人兴奋的功能,但分析依赖关系总是一个好的开始恕我直言 - 越少越好。
      • 我同意。我觉得当额外的东西可以是正交的和可选的工具时会好得多。并非总是可行,但 DB-s、MQ-s、TM-s 等低级工具不需要紧密耦合。
      猜你喜欢
      • 1970-01-01
      • 2021-04-20
      • 2011-10-07
      • 1970-01-01
      • 2021-09-01
      • 2015-11-18
      • 2015-03-28
      • 2015-06-04
      • 2014-10-16
      相关资源
      最近更新 更多