2
votes

I am new to working with AMQP and looking into platform neutral way to work with messaging, where we have decided to work with AMQP in Java application. But as I read AMQP is wire level protocol and it delivers the middleware equivalent of HTTP at link http://www.amqp.org/resources/developer-faqs and like HTTP(GET, POST, PUT, DELETE - only I am assuming, not sure exactly) it has standard message types with reference to section AMQP performatives and the link protocol at http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol and also something of request-response session. Concepts like Exchange and routing key with binding queue at http://www.wmrichards.com/amqp.pdf But when I search across examples with AMQP-JAVA all I come across are normal JMS API examples with ActiveMQ or QPid where JMS concepts are used like destination, connection, session etc. Pardon me if I am asking a very generic question, but I really want to understand AMQP in JAVA with demonstrates the keyword wire-level protocol Please suggest some examples or references or let me know if I am missing altogether something here

Thanks

1
RabbitMQ and other brokers do not implement the latest AMQP spec. For example RabbitMQ uses AMQP 0-9-1. For reasons I don't know, the AMQP committee totally changed the paradigm with the final version and dropped the whole message oriented middleware (MOM) concept parts and restricted the spec to the wire level protocol. That's probably why there's a mismatch between the examples and what you can read on the AMQP webpage. - Bengt
Thanks Bengt. Can you please suggest any open source AMQP broker provider which fully adheres to AMQP standard and works with JAVA - Chakradhar K
Wikipedia has a nice overview: en.wikipedia.org/wiki/… - Bengt
I now get it that Exchanges, Routing were all defined in AMQP upto 0-9-1 which is still promoted by some broker providers like RabbitMQ, but latest final approved version of 1.0 which is implemented by ActiveMQ, QPid etc. And 0-9-1 and 1.0 are very much different, as 0-9-1 states communication protocol and broker implmentations also, but 1.0 only emphasizes on communication protocol being used like HTTP. So may be thats the reason I see differences in examples of various vendors. The link predic8.com/… helped me get an overview - Chakradhar K
Yes, that's correct :-) Glad I could help you - Bengt

1 Answers

1
votes

Thanks all for responses, comments. I now understand that "wire level protocol" is something like HTTP which is implemented by AMQP clients. I was confused by watching some AMQP client examples of 0-9-1 and some of 1.0. But going through AMQP specifications, 0-9-1 and 1.0 which have been largely changed, Rabbit MQ examples, and Active MQ AMQP examples I figured out to some extent.

AMQP being wire level protocol, it facilitates any broker implementations to work with any client implementations as long as they both adhere to AMQP protocol for communication.

References http://hintjens.com/blog:28

http://it.toolbox.com/blogs/open-source-smb/whats-the-future-of-amqp-44450

http://kellabyte.com/2012/10/20/clarifying-amqp/