I am trying to understand what JMS and how it is connected to AMQP terminology.
I know JMS is an API and AMQP is a protocol.
Here are my assumptions (and questions as well)
- RabbitMQ uses AMQP protocol (rather implements AMQP protocol)
- Java clients need to use AMQP protocol client libraries to connect / use RabbitMQ
- Where does JMS API come into play here? JMS API should use AMQP client libraries to connect to RabbitMQ?
- Usually we use JMS to connect Message brokers like RabbitMQ, ActiveMQ, etc. Then what is the default protocol used here instead of AMQP?
Some of the above may be dumb. 🙂 But trying to wrap my head around it.
Best Answer
Your question is a bit messy but Let's see its bits one by one.
General concept:
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914. It is a messaging standard that allows application components based on the Java Enterprise Edition (Java EE) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
Now (from Wikipedia):
And the most important thing (again from Wikipedia):
Some important things you should know:
Good Luck :)