Difference between RabbitMq and RabbitMq with JMS plugin

I am new to JMS. I am little knowledgeable about RabbitMq and am now trying to find the difference in rabbitMQ with JMS. How is it used and why should it be used?

Thanks in advance.

+3


source to share


2 answers


JMS is Java API (part of JEE).

JMS Merchants use a proprietary protocol to communicate with the broker; they are not wire compatible.

You can usually talk to any JMS broker by simply changing the vendor-specific configuration (factory connection, etc.).

Vendors provide a library of JMS clients to talk to their brokers.

AMQP is a wired protocol, not an API.



The vendors provide a Java API.

You can use Spring AMQP which sits on top of the RabbitMQ library amqp-client

and its API.

You can use Spring JMS which talks to any JMS broker (including RabbitMQ with a plugin) using the JMS API.

If you need to be compatible with any JMS provider use spring-jms; if you are just going to use RabbitMQ I would recommend using Spring AMQP.

Or use Spring Integration on top of one of them and you can switch between AMQP and JMS just by changing the configuration.

0


source


I'm not sure what you mean by RabbitMQ for JMS

. But I'll cover the differences below.

RabbitMQ

  • Runs on AMQP and is not a J2EE specification
  • Applications written in multiple languages ​​can create and consume messages (Python, Ruby, Java, C #, Perl, etc.).
  • Doesn't work with J2EE specs, so you can't use XA Transactions, bean pools, factory connection pools that are provided by the J2EE container by default.
  • The community is not that mature, but if your organization needs to communicate with many different types and languages ​​of applications, you can sacrifice all the great features provided by the J2EE / JMS specification.


JMS

  • This is a J2EE specification, any application server that provides JMS support must follow the guidelines outlined in the specification.
  • Only Java / J2EE applications can build and consume, it can be made to work in other languages ​​but using adapters
  • The J2EE container provides XA transaction, bean pooling, pooling, and more out of the box with little configuration at the end.
  • If your organization only uses Java based applications, then you don't need to search RabbitMQ as you have JMS support that works well.
0


source







All Articles