RabbitMQ
DevOps 🟡 MidDefinition
Message broker AMQP pour la communication asynchrone entre services. Supporte les queues, exchanges, routing et dead letter queues.
Analogie
Un bureau de poste : il reçoit les lettres (messages), les trie et les distribue dans les bonnes boîtes aux lettres (queues).
Exemple de code
// Publisher
channel.publish('orders', 'order.created',
Buffer.from(JSON.stringify(order)));
// Consumer
channel.consume('order-processing', (msg) => {
const order = JSON.parse(msg.content);
processOrder(order);
channel.ack(msg);
});
Cas d'usage
Découpler les services pour absorber les pics de charge sans perdre de messages.
Anti-pattern
Ne pas ack les messages : ils restent en queue et saturent la mémoire.