EMZETT.
Login

Message Queue (Nachrichtenwarteschlange)

Kurz: Eine Message Queue nimmt Nachrichten von einem Programm an und gibt sie später an ein anderes weiter. So müssen beide nicht gleichzeitig laufen oder gleich schnell sein.

Genauer: Der Absender (Producer) legt eine Aufgabe in die Warteschlange, ein Empfänger (Consumer) arbeitet sie ab. Fällt der Empfänger aus oder ist überlastet, bleiben die Nachrichten erhalten. Beispiele: RabbitMQ, Apache Kafka, Amazon SQS, Redis Streams.

Im Detail

  • Entkopplung: Der Webserver antwortet sofort, schwere Arbeit (Mails senden, Bilder verkleinern) macht ein Worker im Hintergrund.
  • Wiederholung: Schlägt eine Aufgabe fehl, wird sie nochmal versucht. Aufgaben sollten deshalb idempotent sein (Idempotenz).
  • Dead-Letter-Queue: Sammelt Nachrichten, die immer wieder scheitern.
  • Pub/Sub: Eine Nachricht geht an viele Abonnenten.
  • Reihenfolge und Dopplung: Nicht jedes System garantiert beides. Das muss man bedenken.

Siehe auch: Microservices, Webhooks