AMQP and RabbitMQ
In short: AMQP is an open protocol for message queues, RabbitMQ the best-known broker implementing it.
In more detail: Producers send messages to an exchange, which distributes them into queues by rules. Consumers pick them up there and acknowledge receipt.
In Depth
- Exchange types:
direct(exact key),fanout(to all),topic(patterns likelog.*.error),headers. - Acknowledgements: Only after
ackdoes the broker delete the message. Onnackor abort it returns to the queue. - Durability: Durable queues and persistent messages survive a restart.
- Dead-letter queue: Messages that cannot be processed land in a collecting queue for analysis.
- Contrast: Kafka stores a log that can be re-read. RabbitMQ is a classic broker that removes messages after delivery. See message queues and event streaming.
- Use: Background jobs, decoupling services, smoothing load peaks.
See also: MQTT