ActiveMQ和ActiveMQ-Artemis之间的混淆?

有人能澄清ActiveMQ和ActiveMQ-Artemis之间的区别吗? 从维基百科上我所理解的,ActiveMQ-Artemis本质上是ActiveMQ的inheritance者,但是如果是这样的话,我不明白为什么Artemis被列为ActiveMQ的子项目。

而且,如果我看一下ActiveMQ和ActiveMQ-Artemis的版本,我会发现版本是完全不同的。 ActiveMQ在5.15,而Artemis在2.2。

据我所知,Artemis是一个更快,最近的实现,包括对JMS 2.0的支持。 鉴于MQ平台的全新安装和部署,是否应该将ActiveMQ 5.15视为已弃用而不是Artemis?

Apache收到了HornetQ的代码,他们决定改名为Artemis,然后是未来的ActiveMQ。

但是通过看板上的最新消息 ,看起来这两个项目依然存在,ActiveMQ 5.15.x仍在使用旧的ActiveMQ核心源代码。

显然,他们需要添加一些ActiveMQfunction,这些function并不在最初的HornetQ代码中,比如完整的AMQP支持。

在这个较旧的文章中,您可以看到一些问题/答案,可以解决您的问题之一:

问:ActiveMQ PMC需要提供一个计划:

答:Apache ActiveMQ有多个版本的多个产品:

a. ActiveMQ - (version 5.xx) b. ActiveMQ Artemis - (version 1.xx) 

这意味着我们还没有准备好声明ActiveMQ Artemis是ActiveMQ 5.x的inheritance者。 我们将等到产品成熟时作出决定。

捐款后这个原来的职位 。

据我所知,Artemis是一个更快,最近的实现,包括对JMS 2.0的支持。 鉴于MQ平台的全新安装和部署,是否应该将ActiveMQ 5.15视为已弃用而不是Artemis?

这个实现不是最近(或者稍微),而是来自已经实现了JMS 2.0的另一个开源项目(HornetQ)。

在我的情况下,如果我必须为一个全新的项目select一个MOM,我肯定会尝试Artemis,特别是testing多实例(master-master)和取代AMQ世界中的旧的networking代理的新特性。 在我不得不承认我没有尝试它,然后如果你知道如何正确configuration一个稳定的ActiveMQ,我想你也必须考虑到这一点。 另一方面,我会说HornetQ真的很稳定,很容易embedded到任何Java应用程序中(我们很容易地将它embeddedTomcat中部署的战争中)。

就个人而言,如果我不得不升级当前的ActiveMQ实现,最快的方法是坚持最新的ActiveMQ 5.15.x版本,因为切换到Artemis可能会引发更多的问题。

参考文献:

  • ActiveMQ论坛
  • JBoss论坛
  • ActiveMQ委员会报告