首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMq和RabbitMq与JMS的区别

RabbitMq和RabbitMq与JMS的区别
EN

Stack Overflow用户
提问于 2017-03-30 09:07:04
回答 2查看 1.3K关注 0票数 3

我对JMS很陌生。我对RabbitMq知之甚少,现在我试图找出rabbitMQ与JMS之间的区别。它是如何使用的,为什么要使用它?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-30 13:12:21

JMS是Java (JEE的一部分)。

JMS供应商使用专有协议与代理通信;它们不兼容有线。

您通常可以通过更改特定于供应商的配置(连接工厂等)与任何JMS代理对话。

供应商提供一个JMS客户端库来与他们的代理进行对话。

AMQP是一种有线协议,而不是API。

供应商提供Java客户端API。

您可以使用Spring,它位于RabbitMQ的amqp-client库及其API之上。

您可以使用Spring,它使用JMS与任何JMS (包括带有插件的RabbitMQ )进行对话。

如果您需要与任何JMS供应商兼容,请使用Spring;如果您只打算使用RabbitMQ,我建议您使用Spring。

或者,在任何一个之上使用Spring集成,只需更改配置,就可以在AMQP和JMS之间切换。

票数 2
EN

Stack Overflow用户

发布于 2017-03-30 15:16:12

我不知道你所说的RabbitMQ for JMS是什么意思。但是,我会列出下面的区别。

RabbitMQ

  1. 工作在AMQP协议上,它不是J2EE规范。
  2. 用多种语言编写的应用程序可以生成和使用消息(Python、Ruby、C#、Perl等)。
  3. 不适用于J2EE规范,因此不能使用默认由J2EE容器提供的XA事务、bean池、连接工厂池。
  4. 社区还不是很成熟,但是,如果您的组织需要与许多不同类型和语言的应用程序进行通信,您可以牺牲J2EE/JMS规范提供的所有漂亮特性。

JMS

  1. 这是J2EE规范,任何提供JMS支持的应用服务器都应该遵循规范中提到的指导方针。
  2. 只有Java/J2EE应用程序才能生成和使用,它可以用于其他语言,但需要使用适配器。
  3. J2EE容器提供XA事务、Bean池、连接池等。
  4. 如果您的组织只使用基于Java的应用程序,那么您不需要以RabbitMQ的方式查看,因为您有很好的JMS。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43113250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档