使用ActiveMQ做项目一年多了,有很多感触。ActiveMQ从5.1到5.3,稳定了很多。尽管有时还会发生些诡异的地方,但对于开源软件已经足够了。主要的感觉就是ActiveMQ的最大优势在于性能。
最近开始研究JBoss的消息队列JBoss Messaging。JBoss原来有一个叫JBossMQ的项目,由于架构不适合继续升级。重新写一个新的项目叫JBoss Messaging。JBoss Messaging1.0在性能上还是与ActiveMQ相差比较大,当初项目选型时就是因为JBossMQ的性能不如ActiveMQ而放弃的,毕竟消息队列最重要的指标就是性能。现在JBoss Messaging2.0已经进入bate4的版本,最新的报告(JBoss的)性能已经全面追上并超过ActiveMQ,所以是时候研究一下了。。。
以下最要比较一下ActiveMQ5.3与JBoss Messaging2.0的优缺点,从十个方面对俩个MQ进行分析。对两个项目都不能十分精通,所以难免会有不对的地方,请多见谅。
评比级别从上到下为:好,较好,一般,较差,差
性能
:对于MQ的最重要要求,否则不如直接数据库了。ActiveMQ性能还是不用说的,非常好。Messaging的性能,还没有经过大量测试,不过已经有很大的提高,姑且给个较好。
集群
:由于消息队列一般会成为重要的业务的中间件,所有集群是必不可少的。ActiveMQ给出了三种集群方式,但都不好用。Messaging在这方面考虑的更多,支持也就更好。
稳定性
:这个不用说,非常重要。ActiveMQ一般几个月会出一次问题(不重启),在5.3版以后已经很稳定了。Messaging2还是bate版,现在还不能使用,及时正式发布了,到稳定也要2-3年。所以姑且给个一般
安全性
:一般来说MQ不会开放到公网,也就不是非常重要。俩个都支持多种安全方式,都给较好。
易用性
:
两者在使用上,都差不多。但在管理上ActiveMQ有一个强大的管理界面,而Messaging2没有,只能使用JMX。
优先级
:
这个问题是我使用ActiveMQ最头疼的问题,ActiveMQ为了性能直接省略了这个功能。而Messaging2是支持的。
JNDI支持
:
这个涉及到与其它模块之间调用的问题,以及与其它容器融合的问题。ActiveMQ支持简单的JNDI,Messaging2可以集成JBoss AS里,所以Messaging2这局胜出。
其它语言支持
:
这个问题实际上如果公司里有使用不同语言的组,就很重要。ActiveMQ支持很多种语言,而Messaging2目前不支持,需要使用其它中间件来解决这个问题。
文档和例子
:
AciveMQ也像其它apache一样,文档例子都比较少。这点JBoss在被Red Hat收购后,有了很大改善。文档例子都很全。
支持:
AciveMQ的支持也是比较少,主要还是论坛和wiki。而Messaging2在必要的时候可以使用付费模式,来解决问题。
以下是整理后评价:
|
ActiveMQ5.3 |
JBoss Messaging2.0 |
性能 |
好 |
较好 |
集群 |
较差 |
较好 |
稳定性 |
较好 |
一般 |
安全性 |
较好 |
较好 |
易用性 |
好 |
一般 |
优先级 |
差 |
好 |
JNDI支持 |
较差 |
较好 |
其它语言支持 |
好 |
较差 |
文档和例子 |
一般 |
较好 |
支持
|
一般 |
较好 |
尽管Messaging2在多项上占优势,但目前Messaging2还只是bate版,与ActiveMQ 5.3代码质量还有很大的差距。Messaging2可以说已经进入MQ的考虑范围,在未来开始使用的企业级中间件产品。但目前ActiveMQ还是开源MQ的主力。
分享到:
相关推荐
7.1 JBoss Messaging JBoss支持Java Message Service (JMS),允许应用程序之间异步通信。开发者应了解如何创建消息生产者和消费者,以及配置消息队列和主题。 7.2 HornetQ与ActiveMQ JBoss早期版本使用HornetQ作为...
尽管ActiveMQ 在开源JMS提供商中脱颖而出,但仍有其他竞争对手,如JBoss的jBossMQ和jBoss Messaging,OpenJMS,以及IBM WebSphereMQ、BEA WebLogic JMS等商业产品。尽管这些产品都有各自的优点,但ActiveMQ的独立性...
ActiveMQ 的主要竞争对手包括其他开源JMS提供商,如jboss mq、jboss messaging、joram等,尽管许多开源JMS提供商已停止发展或与特定J2EE服务器绑定。此外,商业JMS提供商如IBM WebSphere MQ、BEA WebLogic JMS、...
1. **其他开源JMS提供商**:如jbossmq(JBoss 4)、jboss messaging(JBoss 5)、joram、openjms等。尽管许多开源项目已经停止发展,但ActiveMQ由于其NIO的使用,在性能上有一定优势,特别是在与Geronimo的结合上。 ...
在配置方面,指南提供了关于如何在JBoss ESB中配置JMS提供者的详细指导,包括JBoss Messaging的配置、JBoss Messaging的集群配置、ActiveMQ的使用,以及IBM WebSphere MQ系列和Oracle AQ等第三方消息服务的集成。...
Readers will learn to integrate ActiveMQ with Apache Geronimo and JBoss, and tie into both Java and non-Java technologies including AJAX, .NET, C++, Ruby, and the Spring framework. KEY POINTS The ...
- 开源 JMS 提供商,如 JBossMQ、JBoss Messaging、OpenJMS 等,其中 ActiveMQ 以其高性能的 NIO 实现而具有优势。 - 商业 JMS 提供商,如 IBM WebSphereMQ、BEA WebLogic JMS 等,它们通常集成在大型商业应用...
包括但不限于IBM WebSphere MQ、BEA WebLogic JMS、Oracle AQ、TIBCO Enterprise for JMS、iLinkMQ(国内)、TongLink/Q(北京东方通科技),以及开源领域的ActiveMQ、OpenJMS、OpenMessageQueue和JBoss Messaging等...
1. **开源JMS Providers**:市场上存在多个开源JMS Providers,如JbossMQ、Jboss Messaging、Joram、OpenJMS、MantaMQ、UberMQ和Somnifugi JMS等。然而,这些项目大多已停止更新,或者与特定的J2EE服务器绑定。相比...
提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss Messaging等。 客户端,它是充当消息的发送者或接收者的应用程序。 生产者/发布者,它是充当...
除了 RabbitMQ,还有其他的消息系统可以选择,如基于 JMS(Java Message Service)的实现,如 WebSphereMQ、JBoss、ActiveMQ,以及使用 AMQP(Advanced Message Queuing Protocol)协议的系统。JMS 提供了一致的 API...
这个想法是构建一个更简单的系统版本,比如 Apache ActiveMQ、IBM MQ 系列或 JBoss Messaging。 我们使用 Java 作为编程语言,使用 PostgreSQL 作为数据库。 该系统分为三层:客户端、消息中间件和数据库。 系统...
在Jboss中,JMS服务通常通过 HornetQ 或 ActiveMQ 这样的消息代理实现。HornetQ是JBoss早期版本内置的消息中间件,而ActiveMQ则是在较新版本中使用的。这些消息代理负责接收、存储和转发消息,使不同的应用程序能够...
在安全性方面,OpenShift还提供了SELinux、libvirt、DNS和网络配置等管理工具,以及ActiveMQ消息代理服务,为消息队列通信提供支持。 综上所述,OpenShift PaaS平台通过一系列的组件和服务为开发者提供了一个全面的...
6. **Java Messaging Service (JMS)**:JMS允许应用程序创建、发送、接收和读取消息。书会讲解消息队列和发布/订阅模型,以及如何与Apache ActiveMQ等实现集成。 7. **Java Transaction API (JTA)** 和 **Java ...
BlazeDS还可以与其他消息系统集成,例如JMS(Java Messaging Service)和ActiveMQ。由于其远程技术和消息系统都采用了基于HTTP的AMF数据传输方式,因此在性能方面具有明显优势。 #### 二、BlazeDS的组成部分 ...