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
| Broker | Stärke | Use Case |
|---|---|---|
| RabbitMQ | Flexibel, viele Patterns | Allgemein |
| Kafka | Hoher Durchsatz, Replay | Event Streaming |
| Redis | Einfach, schnell | Leichtgewichtig |
| SQS | Managed, skaliert | AWS-Umgebung |
Delivery Guarantees
| Garantie | Beschreibung |
|---|---|
| At-most-once | Nachricht kann verloren gehen |
| At-least-once | Nachricht kann doppelt ankommen |
| Exactly-once | Genau einmal (schwer zu erreichen) |