Message Queue

Ein Kommunikationsmuster, bei dem Nachrichten in einer Warteschlange zwischengespeichert werden – ermöglicht asynchrone, entkoppelte Kommunikation zwischen Services.

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Entkoppelt Sender und Empfänger zeitlich und räumlich
  2. Puffert Lastspitzen und erhöht Systemresilienz
  3. Ermöglicht asynchrone Verarbeitung von LLM-Anfragen

Sofortantwort

Message Queue einfach erklärt

Warteschlange für asynchrone Service-Kommunikation.

Kurz gesagt
Entkoppelt Sender und Empfänger zeitlich und räumlich
Typischer Einsatz
LLM-Batch-Processing, Microservices, Task Queues
Wichtig zu wissen
Ermöglicht asynchrone Verarbeitung von LLM-Anfragen

Message Queue im Überblick

Eine Message Queue ist eine Warteschlange für Nachrichten zwischen Services. Der Sender legt eine Nachricht ab und macht weiter. Der Empfänger holt sie ab, wenn er bereit ist.

Warum ist das nützlich?

Ohne Queue (synchron):
User → API → LLM (30 Sekunden warten) → Response
= User wartet, Server blockiert

Mit Queue (asynchron):
User → API → "Job in Queue, ID: abc123" (sofort)
Worker → Queue → LLM → Ergebnis speichern
User → "Status von abc123?" → Ergebnis
= User kann weitermachen, System skaliert besser

Technisch betrachtet

Architektur

Producer → [Message Queue] → Consumer

         Persistenz
         (Nachrichten überleben Neustarts)

Python mit Redis Queue

from rq import Queue
from redis import Redis

redis_conn = Redis()
q = Queue(connection=redis_conn)

# Job in Queue legen
def process_llm_request(prompt):
    response = call_llm_api(prompt)
    save_result(response)
    return response

job = q.enqueue(process_llm_request, "Erkläre ML")
print(f"Job ID: {job.id}")

# Später: Status prüfen
if job.is_finished:
    result = job.result

Vergleich Message Broker

BrokerStärkeUse Case
RabbitMQFlexibel, viele PatternsAllgemein
KafkaHoher Durchsatz, ReplayEvent Streaming
RedisEinfach, schnellLeichtgewichtig
SQSManaged, skaliertAWS-Umgebung

Delivery Guarantees

GarantieBeschreibung
At-most-onceNachricht kann verloren gehen
At-least-onceNachricht kann doppelt ankommen
Exactly-onceGenau einmal (schwer zu erreichen)

01Einsatzbereiche

Wann ist Message Queue sinnvoll?

Geeignet für

  • LLM-Batch-ProcessingViele Anfragen in Queue, Worker verarbeiten asynchron
  • MicroservicesLose Kopplung zwischen Services
  • Task QueuesHintergrund-Jobs wie E-Mail-Versand, Bildverarbeitung

↑ Inhalt

02Werkzeuge

Womit Message Queue umgesetzt wird

↑ Inhalt

Merksatz

Eine Message Queue ist wie ein Briefkasten

Der Absender wirft den Brief ein und geht weiter (asynchron). Der Empfänger holt ihn ab, wenn er Zeit hat. Beide müssen nicht gleichzeitig verfügbar sein.

  1. Entkoppelt Sender und Empfänger zeitlich und räumlich
  2. Puffert Lastspitzen und erhöht Systemresilienz
  3. Ermöglicht asynchrone Verarbeitung von LLM-Anfragen

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu Message Queue

Wann sollte ich eine Message Queue verwenden?

Bei asynchronen Aufgaben (E-Mail, Bildverarbeitung), zur Entkopplung von Services, bei Lastspitzen (Puffer), oder wenn Sender und Empfänger unterschiedlich schnell sind.

Was ist der Unterschied zwischen Queue und Pub/Sub?

Queue: Eine Nachricht wird von genau einem Consumer verarbeitet. Pub/Sub: Eine Nachricht geht an alle Subscriber. Kafka kann beides, RabbitMQ primär Queues.

Wie nutze ich Message Queues für LLM-Anwendungen?

Anfragen in Queue → Worker holt Anfrage → Ruft LLM-API auf → Ergebnis in Response-Queue oder Webhook. Ermöglicht Skalierung und Retry bei Fehlern.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Event Sourcing

    Zustand als Sequenz von Events speichern und bei Bedarf rekonstruieren.

  • Technisch vertiefen

    Microservices

    Anwendung besteht aus vielen kleinen, unabhängigen Services.

↑ Inhalt