RabbitMQ

DevOps 🟡 Mid

Definition

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.

Termes lies

#devops#messaging#interview