RabbitMQ is an open source AMQP broker. Advanced Message Queuing Protocol (AMQP) is an open protocol that includes the format of messages sent over the wire. This has risen in popularity compared to other messaging solutions like JMS. Why?
JMS is an API, whereas AMQP is a protocol. JMS defines how to talk to the broker but not the format of its messages. And it's confined to Java apps. AMQP doesn't speak about how to talk to a broker but about how messages are put on the wire and how they are pulled down.
To illustrate this point, imagine two different applications. If they were both Java, they could communicate via JMS. But if one of them were Ruby, JMS would be off the table.
To further demonstrate the differences between JMS and AMQP, a JMS-speaking broker can actually use AMQP under the hood to transport the messages.