我们使用ActiveMQ 5.2作为我们选择的实现,并且我们在不久前就选择了它。它的性能足以让我们现在使用。已经有一段时间了,我想知道还有哪些其他 Java 消息服务实现正在使用,为什么?肯定不止几个。
10 回答
在深入研究 JMS 之前,还要考虑 AMQP - 可能是一个新标准。我合作过的 JMS 提供商(在不同程度上):
TIBCO EMS - 非常快速和健壮,良好的 API 支持,Java 友好,本地 C API 存在。我用过的最佳商业选择。
Websphere MQ(以及它的 JMS 实现)——如此,如此。Pub/sub 并不是很快,许多配置选项和选择从该产品的悠久历史来看是“奇怪的”并且过于复杂。看看文档的数量...
Solace JMS - 非常高的吞吐量(JMS 代理内置于硬件中!),连接协议的良好选择(MQTT、AMQP、http 上的 XML 作为管理协议)
Fiorano MQ - 过去在营销方面很激进,但失去了很多市场份额,成熟度问题
Sonic MQ - 可靠的产品,也支持 C API
Active MQ - 如果您想使用开源产品(便宜的支持、强大的社区、有限的附加产品、有限的企业功能),这可能是您的最佳选择。开箱即用,是 Apache Camel 等多种工具的支柱。
我们通过 Camel 框架依赖 AMQ (5.1),没有任何问题。AMQ 4 有点可疑。
使用 WebLogic 时的 WebLogic JMS 提供程序。效果很好。
Sun 的开源 OpenMQ ( https://mq.dev.java.net/ )。您可以获得相同的免费和付费支持。
请参阅此博客文章,了解与 ActiveMQ 等的一些比较——http: //alexismp.wordpress.com/2008/06/06/openmq-the-untold-story/。
我听说 OpenMQ 更稳定。
ActiveMQ 更加灵活。如,您可以将其与更多语言一起使用。ActiveMQ 的邮件列表中的人可能比 OpenMQ 多。
TIBCO EMS。它是一个带有 Java/JMS、C、.net 和其他绑定的商业消息服务。
在我最近参与的一个项目中,我们使用了Sonic MQ。良好的整体实现与良好的 .NET 绑定。
我们遇到了一些可扩展性问题,但我不得不承认,可扩展性要求非常严格:如果我没记错的话,大约每秒 20,000 个混乱,200 个不同的客户端之间不允许有任何延迟(每个客户端都必须接收每条消息同时)。
我使用了 JBossMQ,它与最高版本 4 的 JBoss 应用程序服务器一起提供,并且可靠但有限。JBoss Messaging 是 JBossAS 5 的替代品,是一个巨大的改进。
我非常不喜欢 ActiveMQ。开发人员似乎已经追求性能和功能而损害了稳定性,而且它的问题非常严重。鉴于它是 Geronimo 的 JMS 结构,我担心。
IBM WebSphere MQ 5 和 6 活动 MQ 5.2.0
还可以在http://codingjunky.com/page5/page4/page4.html上查看 Micro QueueManager。 它体积小,易于安装和用于小型项目。
我们正在使用 SonicMQ、JBossMQ 和 Lotus Expeditor Integrator 的“微代理”。我们将它们用于不同的目的:
-JBossMQ 在内部使用,并与我们在 JBoss 上运行的所有 Java EE 应用程序进行通信。-Lotus Expeditor 用于“远程站点”,我们只有有限的资源和 IT 人员。1000 个站点。
我们在所有这些方面都有很好的经验,但我们的经验也是,在更复杂的环境中,您必须对消息传递系统进行更积极的管理。在我们的站点上使用 SonicMQ 尤其如此 :-) 。从性能的角度来看,我们使用 SonicMQ 获得了最佳体验,尤其是在基于队列的持久消息传递方面。
I have used ActiveMQ in production for a couple of years but I was never happy about its stability (specially with it clustered-enabled). Never looked back after switching to OpenMQ. You might want to look into RabbitMQ or ZeroMQ.