Architektur Fortgeschritten
Message Queue Patterns¶
Message QueueRabbitMQAsync 3 Min. Lesezeit
Entwurfsmuster für Message Queues. Work Queues, Dead Letter Queues und Beispiele mit RabbitMQ.
Work Queue¶
// Producer
ch.assertQueue('email-queue', { durable: true });
ch.sendToQueue('email-queue', Buffer.from(JSON.stringify({
to: '[email protected]', subject: 'Bestätigung'
})), { persistent: true });
// Consumer
ch.prefetch(1);
ch.consume('email-queue', async (msg) => {
await sendEmail(JSON.parse(msg.content.toString()));
ch.ack(msg);
});
Dead Letter Queue¶
Nachrichten werden nach N fehlgeschlagenen Versuchen in die DLQ zur Analyse verschoben.
ch.assertQueue('orders', {
durable: true,
arguments: {
'x-dead-letter-exchange': 'dlx',
'x-dead-letter-routing-key': 'dead-orders'
}
});
Zusammenfassung¶
Work Queues für Hintergrundaufgaben, Pub/Sub für Events, DLQ für Fehlerbehandlung. RabbitMQ für Routing, Kafka für Streaming.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.