java 哪个嵌入式消息系统 -> ActiveMQ 或 HornetQ
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/4559883/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Which embedded messaging system -> ActiveMQ or HornetQ
提问by mP.
I would appreciate some general pointers and opinions regarding which of the two messaging systems is
我将不胜感激关于这两个消息传递系统中的哪一个是的一些一般性指示和意见
- easier to manage
- has less gotchas or magic stuff one needs to know and avoid
- has less overal dependencies
- is simple to work with.
- 更容易管理
- 需要知道和避免的陷阱或魔法的东西更少
- 具有较少的整体依赖性
- 使用起来很简单。
采纳答案by Clebert Suconic
easier to manage
更容易管理
hornetQ has a clear API for management and it's very easy to use.
hornetQ 有一个清晰的 API 用于管理,并且非常易于使用。
has less gotchas or magic stuff one needs to know and avoid
需要知道和避免的陷阱或魔法的东西更少
hornetQ was made for the embedded case. It is very, very easy to integrate it in your code. As a matter of fact you can do it with less than 10 lines of code.
hornetQ 是为嵌入式外壳制作的。将它集成到您的代码中非常非常容易。事实上,你可以用少于 10 行的代码来完成。
has less overall dependencies
具有较少的整体依赖性
Everything on HornetQ is modular. The only required dependency on HornetQ is Netty which is the network provider.
HornetQ 上的一切都是模块化的。HornetQ 唯一需要的依赖是 Netty,它是网络提供者。
is simple to work with.
使用起来很简单。
HornetQ is very simple to use. Clear API, and mainly, the documentation is very, very complete.
HornetQ 使用起来非常简单。清晰的 API,主要是文档非常非常完整。
You don't need to buy any books to use HornetQ. All the docs are right there for free at the hornetq's website.
您无需购买任何书籍即可使用 HornetQ。所有文档都在 hornetq 的网站上免费提供。
回答by
Firstly, I'm biased. I'm the founder of the HornetQ project, although I don't work on it any more.
首先,我有偏见。我是 HornetQ 项目的创始人,尽管我不再从事该项目。
Why HornetQ over ActiveMQ? Here are a few good reasons:
为什么 HornetQ 优于 ActiveMQ?这里有几个很好的理由:
HornetQ is significantly faster than ActiveMQ. http://community.jboss.org/wiki/HornetQPerformance
In fact, HornetQ is the #1 fastest enterprise messaging system on the market. Or at least, it was, when we tested it against the market last year. (We tested it against the top 11 or so JMS implementations out there)
Features. HornetQ has a full "enterprise" feature set, that you'd expect to see. Feature list is here http://community.jboss.org/wiki/HornetQFeatures
You'll find HornetQ has equivalents to most of the features you find in ActiveMQ, and others that you won't find in ActiveMQ
Clustering has recently been overhauled, so it is rock solid. If you have any gripes with the clustering, please use the forums. The HornetQ team will be happy to respond to any perceived issues.
Used in production by many high profile names including large financial organisations and other such as last.fm
Trusted enough to be the core messaging technology in JBoss AS 7. The latest version of the worlds favourite Java application server.
Protocol agnostic architecture. HornetQ, unlike ActiveMQ was not built around JMS. In HornetQ the core server is protocol/API agnostic - it's a generic messaging server. Various protocols/APIs like STOMP/JMS/REST/Websockets etc are added as thin adaptors to the generic core. This makes it much more flexible.
HornetQ 明显快于 ActiveMQ。http://community.jboss.org/wiki/HornetQPerformance
事实上,HornetQ 是市场上排名第一的最快的企业消息系统。或者至少,当我们去年对市场进行测试时是这样。(我们针对前 11 个左右的 JMS 实现对其进行了测试)
特征。HornetQ 具有您希望看到的完整“企业”功能集。功能列表在这里http://community.jboss.org/wiki/HornetQFeatures
您会发现 HornetQ 具有与您在 ActiveMQ 中找到的大多数功能等效的功能,以及您在 ActiveMQ 中找不到的其他功能
聚类最近已经过大修,所以它坚如磐石。如果您对集群有任何不满,请使用论坛。HornetQ 团队很乐意回应任何感知到的问题。
许多知名企业在生产中使用,包括大型金融组织和 last.fm 等其他组织
值得信赖,足以成为 JBoss AS 7 中的核心消息传递技术。世界上最受欢迎的 Java 应用程序服务器的最新版本。
协议不可知架构。与 ActiveMQ 不同,HornetQ 不是围绕 JMS 构建的。在 HornetQ 中,核心服务器是协议/API 不可知的——它是一个通用的消息服务器。STOMP/JMS/REST/Websockets 等各种协议/API 作为瘦适配器添加到通用核心。这使它更加灵活。
回答by alexr
I use ActiveMq quite heavily in my day job, and rate it very highly for most of the points you raised. I especially rely in the JMX admin console, it's top class.
我在日常工作中大量使用 ActiveMq,并且对您提出的大多数观点给予很高的评价。我特别依赖 JMX 管理控制台,它是一流的。
I have also been keeping a close eye on HornetQ, and may one day add support for that too. From what I can see HornetQ is a bit lighter weight, and has some really nice NIO optimisations, which should make it fly. But lacks some of the enterprise integration features offered by ActiveMQ, and possibly some of the admin features. However, from what I can see the HornetQ team is working hard to fill in the gaps.
我也一直在密切关注 HornetQ,可能有一天也会增加对它的支持。从我所见,HornetQ 的重量更轻一些,并且有一些非常好的 NIO 优化,应该可以让它飞起来。但是缺少 ActiveMQ 提供的一些企业集成功能,可能还缺少一些管理功能。然而,据我所知,HornetQ 团队正在努力填补空白。
I don't think you could do wrong with either choice in my opinion. Try them both out and see which feels better.
在我看来,我认为您对这两种选择都不会做错。试一试,看看哪个感觉更好。
回答by wave9x
I did an extensive evaluation of both before deciding on ActiveMQ. It is proven and stable, something that you want in a messaging system. I have used ActiveMQ on two large scale systems with great success. There was some hype around HornetQ a while back when they claimed to be faster than ActiveMQ so I took a look. HornetQ has some serious flaws with it's clustering which can result in messages being lost and servers trying to indefinitely connect to a failed node. The lead developer on HornetQ refuses to recognize flaws in HornetQ and gets quite defensive on the user forums, something that should make you very wary of the product.
在决定使用 ActiveMQ 之前,我对两者进行了广泛的评估。它经过验证且稳定,是您在消息传递系统中想要的东西。我已经在两个大型系统上使用 ActiveMQ 并取得了巨大成功。不久前,当 HornetQ 声称比 ActiveMQ 更快时,有一些关于 HornetQ 的炒作,所以我看了一下。HornetQ 的集群有一些严重的缺陷,这可能导致消息丢失和服务器试图无限期地连接到故障节点。HornetQ 的首席开发人员拒绝承认 HornetQ 的缺陷,并在用户论坛上采取防御措施,这会让您对产品非常警惕。
回答by VHS
Apache ActiveMQ Artemis is the way to go
Apache ActiveMQ Artemis 是要走的路
The HornetQ codebase was donated to the Apache ActiveMQ project, and the HornetQ community joined that project to enhance the donated codebase and create a next-generation messaging broker. The result is Apache ActiveMQ Artemis.
HornetQ 代码库被捐赠给了 Apache ActiveMQ 项目,HornetQ 社区加入了该项目以增强捐赠的代码库并创建下一代消息传递代理。结果是 Apache ActiveMQ Artemis。