The RabbitMQ Server implements a number of extensions of the AMQP specification, which we document here.
- Confirms (aka Publisher Acknowledgements) are a lightweight way to know when RabbitMQ has taken responsibility for messages.
- Blocked Connection Notifications allows clients to be notified when a connection is blocked and unblocked.
- Consumer Cancellation Notifications let a consumer know if it has been cancelled by the server.
- basic.nack extends basic.reject to support rejecting multiple messages at once.
- Consumer Priorities allow you to send messages to higher priority consumers first.
- Fast reply-to allows RPC clients to receive replies to their queries without needing to declare a temporary queue.
- Exchange to Exchange Bindings allow messages to pass through multiple exchanges for more flexible routing.
- Alternate Exchanges route messages that were otherwise unroutable.
- Sender-selected Distribution allows a publisher to decide where messages are routed directly.
- Per-Queue Message TTL determines how long an unconsumed message can live in a queue before it is automatically deleted.
- Per-Message TTL determines the TTL on a per-message basis.
- Queue TTL determines how long an unused queue can live before it is automatically deleted.
- Dead Letter Exchanges ensure messages get re-routed when they are rejected or expire.
- Length Limit allows the maximum length of a queue to be set.
- The User-ID message property is validated by the server.
- Clients that advertise the appropriate capability may receive explicit authentication failure notifications from the broker.
- Some features that were in AMQP 0-8 were deprecated in AMQP 0-9-1. We have undeprecated some of them and introduced a couple of tiny behaviour changes that improve usability of the product. Please refer to the spec differences page.