RabbitMq 和带有 JMS 插件的 RabbitMq 的区别
Difference in RabbitMq and RabbitMq with JMS plugin
我是 JMS 新手。
我对 RabbitMq 知之甚少,现在正试图找出 rabbitMQ 与 JMS 的区别。它是如何使用的以及为什么要使用它?
提前致谢。
JMS 是 Java API(JEE 的一部分)。
JMS 供应商使用专有协议与代理对话;它们不兼容电线。
您通常只需更改特定于供应商的配置(连接工厂等)即可与任何 JMS 代理通信。
供应商提供一个 JMS 客户端库来与他们的经纪人对话。
AMQP 是有线协议,而不是 API。
供应商提供 Java 客户 API。
您可以使用 Spring AMQP,它位于 RabbitMQ 的 amqp-client
库及其 API.
之上
您可以使用 Spring JMS,它使用 JMS API.
与任何 JMS 代理(包括带有插件的 RabbitMQ)对话
如果您需要与任何 JMS 供应商兼容,请使用 spring-jms;如果您只打算使用 RabbitMQ,我建议您使用 Spring AMQP。
或者,在任何一个之上使用 Spring 集成,您只需更改配置即可在 AMQP 和 JMS 之间切换。
我不确定 RabbitMQ for JMS
是什么意思。但是,我将在下面列出不同之处。
RabbitMQ
- 适用于 AMQP 协议,它不是 J2EE 规范
- 用多种语言编写的应用程序可以生成和使用消息(Python、Ruby、Java、C#、Perl 等,)
- 不适用于 J2EE 规范,因此您不能使用 J2EE 容器默认提供的 XA 事务、bean 池、连接工厂池
- 社区还没有那么成熟,但是,如果您的组织需要与许多不同类型和语言的应用程序进行通信,您可以牺牲 J2EE/JMS 规范提供的所有漂亮功能。
JMS
- 这是 J2EE 规范,任何提供 JMS 支持的应用服务器都应该遵循规范中提到的准则。
- 只有 Java/J2EE 应用程序可以生产和消费,可以使其适用于其他语言,但需要使用适配器
- J2EE 容器提供 XA 事务、Bean 池、连接池等,开箱即用,您只需很少的配置。
- 如果您的组织仅使用基于 Java 的应用程序,则您无需查看 RabbitMQ 方式,因为您拥有运行良好的 JMS 支持。
我是 JMS 新手。 我对 RabbitMq 知之甚少,现在正试图找出 rabbitMQ 与 JMS 的区别。它是如何使用的以及为什么要使用它?
提前致谢。
JMS 是 Java API(JEE 的一部分)。
JMS 供应商使用专有协议与代理对话;它们不兼容电线。
您通常只需更改特定于供应商的配置(连接工厂等)即可与任何 JMS 代理通信。
供应商提供一个 JMS 客户端库来与他们的经纪人对话。
AMQP 是有线协议,而不是 API。
供应商提供 Java 客户 API。
您可以使用 Spring AMQP,它位于 RabbitMQ 的 amqp-client
库及其 API.
您可以使用 Spring JMS,它使用 JMS API.
与任何 JMS 代理(包括带有插件的 RabbitMQ)对话如果您需要与任何 JMS 供应商兼容,请使用 spring-jms;如果您只打算使用 RabbitMQ,我建议您使用 Spring AMQP。
或者,在任何一个之上使用 Spring 集成,您只需更改配置即可在 AMQP 和 JMS 之间切换。
我不确定 RabbitMQ for JMS
是什么意思。但是,我将在下面列出不同之处。
RabbitMQ
- 适用于 AMQP 协议,它不是 J2EE 规范
- 用多种语言编写的应用程序可以生成和使用消息(Python、Ruby、Java、C#、Perl 等,)
- 不适用于 J2EE 规范,因此您不能使用 J2EE 容器默认提供的 XA 事务、bean 池、连接工厂池
- 社区还没有那么成熟,但是,如果您的组织需要与许多不同类型和语言的应用程序进行通信,您可以牺牲 J2EE/JMS 规范提供的所有漂亮功能。
JMS
- 这是 J2EE 规范,任何提供 JMS 支持的应用服务器都应该遵循规范中提到的准则。
- 只有 Java/J2EE 应用程序可以生产和消费,可以使其适用于其他语言,但需要使用适配器
- J2EE 容器提供 XA 事务、Bean 池、连接池等,开箱即用,您只需很少的配置。
- 如果您的组织仅使用基于 Java 的应用程序,则您无需查看 RabbitMQ 方式,因为您拥有运行良好的 JMS 支持。