我希望您能就哪个消息传递系统更易于管理、有较少的陷阱或需要了解和避免的魔法操作、具有较少的总体依赖性、以及更易于使用等方面提供一些常规指针和意见。
- 更易于管理
- 具有较少的陷阱或需了解和避免的魔法操作
- 具有较少的总体依赖性
- 易于使用。
我希望您能就哪个消息传递系统更易于管理、有较少的陷阱或需要了解和避免的魔法操作、具有较少的总体依赖性、以及更易于使用等方面提供一些常规指针和意见。
首先,我有偏见。我是HornetQ项目的创始人,尽管我现在已经不再参与其中。
为什么选择HornetQ而不是ActiveMQ?以下是一些很好的理由:
HornetQ比ActiveMQ快得多. http://community.jboss.org/wiki/HornetQPerformance
事实上, HornetQ是市场上速度最快的企业消息系统。至少在我们去年对市场上十一家左右JMS实现进行测试时是这样。(我们对其进行了测试)
功能。 HornetQ具有您预期要看到的完整的“企业”功能集。功能列表在这里 http://community.jboss.org/wiki/HornetQFeatures
您会发现HornetQ与ActiveMQ中的大多数功能相当,还有其他一些在ActiveMQ中找不到的功能。
群集最近已进行全面改版,因此非常稳定。如果您对群集有任何问题,请使用论坛。 HornetQ团队将乐意回应任何被察觉到的问题。
许多高知名度的公司,包括大型金融机构和其他品牌,如last.fm都在生产中使用。
足够可靠,成为JBoss AS 7的核心消息技术。这是世界上最受欢迎的Java应用服务器的最新版本。
协议无关架构。 HornetQ不像ActiveMQ是围绕JMS构建的。在HornetQ中,核心服务端是协议/API不可知的 - 它是一个通用的消息服务器。各种协议/API(如STOMP/JMS/REST/Websockets等)作为通用核心的薄适配器添加。这使得它更加灵活。
更易管理
HornetQ具有清晰的管理API,非常易于使用。
较少需要了解和避免的技巧或神奇功能
HornetQ专为嵌入式情况而设计。非常非常容易将其集成到您的代码中。实际上,您只需不到10行代码即可完成。
总体依赖性较少
HornetQ上的所有内容都是模块化的。对HornetQ的唯一必需依赖是Netty,它是网络提供程序。
简单易用
HornetQ非常易于使用。具有清晰的API,并且文档非常全面。
您无需购买任何书籍即可使用HornetQ。所有文档都可以在HornetQ网站上免费获得。
我在我的日常工作中经常使用ActiveMq,并且非常推荐它,因为它满足了你提出的大部分需求。我尤其依赖于JMX管理控制台,这是一流的。
我也一直密切关注HornetQ,未来可能会添加对它的支持。从我所看到的情况来看,HornetQ比较轻量级,并且具有一些非常好的NIO优化,这应该可以加速它的运行速度。但是,它缺少ActiveMQ提供的一些企业集成功能和可能一些管理功能。然而,从我所看到的情况来看,HornetQ团队正在努力填补这些空白。
在我看来,无论选择哪个都不会错。试着同时使用它们,看看哪个更适合你。
在决定使用ActiveMQ之前,我对它们进行了广泛评估。这是一个经过验证和稳定的消息传递系统,这正是你想要的。我在两个大型系统上成功地使用了ActiveMQ。一段时间以来,HornetQ曾有过一些炒作声音,称自己比ActiveMQ更快,因此我看了看。然而,HornetQ的群集存在严重的缺陷,可能导致消息丢失和服务器试图无限期地连接到失败的节点。HornetQ的首席开发人员拒绝承认HornetQ中的缺陷,并在用户论坛上变得非常攻击性,这应该让你对该产品非常警惕。
选择Apache ActiveMQ Artemis没错
HornetQ代码库被捐赠给了Apache ActiveMQ项目,HornetQ社区加入该项目以增强捐赠的代码库并创建下一代消息代理。结果就是Apache ActiveMQ Artemis。