Initial vault setup
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: Message Queue
|
||||
created: 2026-06-06
|
||||
updated: 2026-06-06
|
||||
type: concept
|
||||
tags: [tech, architecture, devops]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [synthesized]
|
||||
---
|
||||
# 📨 Message Queue (File de Messages)
|
||||
|
||||
## Définition Courte
|
||||
Composant d'architecture qui permet à des services d'**échanger des messages de manière asynchrone** via une file, découplant producteur et consommateur.
|
||||
|
||||
## Explication Détaillée
|
||||
**Pattern de base** :
|
||||
- **Producer** envoie un message à un **topic** ou **queue**.
|
||||
- Le **broker** (le middleware) stocke le message de manière durable.
|
||||
- Un ou plusieurs **consumers** reçoivent le message et le traitent.
|
||||
- Si le consumer crashe, le message reste dans la queue et sera rejoué.
|
||||
|
||||
**Patterns avancés** :
|
||||
- **Pub/Sub** : un message publié est lu par N consumers.
|
||||
- **Work Queue** : un message traité par un seul consumer (load balancing).
|
||||
- **Dead Letter Queue** : messages non traitables routés ailleurs.
|
||||
- **Idempotence** : le consumer doit gérer les doublons.
|
||||
|
||||
**Garanties de livraison** :
|
||||
- **At most once** : le message est livré 0 ou 1 fois (peut être perdu).
|
||||
- **At least once** : livré au moins 1 fois (doublons possibles). **Le standard**.
|
||||
- **Exactly once** : 1 fois, jamais plus. Très coûteux (Kafka transactions).
|
||||
|
||||
## Cas d'Usage
|
||||
- Communication asynchrone entre microservices.
|
||||
- Traitement de tâches lourdes en arrière-plan (envoi de mail, génération PDF).
|
||||
- Découplage de pics (lissage de charge).
|
||||
- Event Sourcing (cf. [[patterns-architecture]]).
|
||||
- IoT : ingestion massive de capteurs.
|
||||
|
||||
## Outils Liés
|
||||
- **Kafka** : le standard, throughput massif, durable.
|
||||
- **RabbitMQ** : classique, AMQP, plus simple.
|
||||
- **NATS** : léger, pub/sub natif, idéal cloud-native.
|
||||
- **Redis Streams** : in-memory, rapide, simple.
|
||||
- **AWS SQS/SNS**, **GCP Pub/Sub**.
|
||||
|
||||
## Pages Liées
|
||||
- [[architecture-microservices]]
|
||||
- [[patterns-architecture]]
|
||||
- [[idempotence]]
|
||||
- [[observabilite]]
|
||||
|
||||
## Questions Ouvertes
|
||||
- Kafka est-il encore pertinent face à des solutions plus modernes (Redpanda, WarpStream) ?
|
||||
- Comment tester correctement des workflows asynchrones ?
|
||||
Reference in New Issue
Block a user