RabbitMQ is a messaging broker that allows applications to connect and exchange messages asynchronously. It provides queuing to decouple applications and ensure scalability. RabbitMQ uses AMQP, an open protocol that defines message formats and rules for exchanging messages. Core components include exchanges, queues, bindings and messages. RabbitMQ supports clustering, high availability, publisher confirmations, and other features.