Difference between RabbitMq and RabbitMq with JMS plugin
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.
source to share
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.
source to share