This topic describes the differences between Advanced Message Queuing Protocol (AMQP) and Java Message Service (JMS) to help you understand the messaging models, message types, and message flows of the two protocols.

Differences between AMQP and JMS

Item AMQP JMS
Definition Wire-level messaging protocol Java API
Cross-platform support Yes No
Support for multiple programming languages Yes No
Messaging model Four messaging models are supported:
  • Direct Exchange
  • Fanout Exchange
  • Topic Exchange
  • Header Exchange
Two messaging models are supported:
  • P2P
  • Pub/Sub
Message types Binary data Five message types are provided:
  • Text message
  • Object message
  • Bytes message
  • Stream message
  • Map message
Message flow A producer sends a message to an exchange. The exchange routes the message to a queue. Then, a consumer receives the message from the queue. A producer sends a message to a queue or topic. Then, a consumer receives the message from the queue or topic.