draft: 120 · broker

This commit is contained in:
Cédrix
2026-05-16 21:46:22 +02:00
parent 2a3f13ee26
commit b6869e390f
3 changed files with 28 additions and 16 deletions
+5
View File
@@ -499,3 +499,8 @@
{"ts":"2026-05-16 19:40:46","url":"/journal_geek/2019/09/01","ref":"https://www.abonnel.fr/journal_geek/2019/09/01?idx=podcasts","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"}
{"ts":"2026-05-16 19:41:17","url":"/informatique/se/linux/cfp/scanner/linux_simple_scan","ref":"https://www.abonnel.fr/informatique/se/linux/cfp/scanner/linux_simple_scan?idx=loisirs%3Alego%3A8200","ua":"Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (HTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)"}
{"ts":"2026-05-16 19:41:28","url":"/informatique/linux/applications/flatseal","ref":"","ua":"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.7778.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"}
{"ts":"2026-05-16 19:43:46","url":"/journal_geek/2024/2024-11-05-audacity-3-7-0-est-sortie-mais-elle-crash","ref":"","ua":"Mozilla/5.0 (compatible; Qwantbot/1.0_2600153; +https://help.qwant.com/bot/)"}
{"ts":"2026-05-16 19:44:59","url":"/informatique/linux/applications/sidebar","ref":"","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36"}
{"ts":"2026-05-16 19:45:43","url":"/informatique/linux_lsblk","ref":"https://www.abonnel.fr/informatique/linux_lsblk?idx=informatique%3Avirtualisation","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}
{"ts":"2026-05-16 19:45:57","url":"/informatique/linux_fstab","ref":"https://www.abonnel.fr/informatique/linux_fstab?idx=electronique%3Aarduino","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"}
{"ts":"2026-05-16 19:46:18","url":"/informatique/linux_lsblk","ref":"https://www.abonnel.fr/informatique/linux_lsblk?idx=journal_geek%3A2019","ua":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"}
@@ -1,4 +1,4 @@
{
"title": "Broker MQTT",
"_updated_at": "2026-05-16 19:42:23"
"_updated_at": "2026-05-16 19:46:22"
}
@@ -1,23 +1,30 @@
# Broker MQTT
Un **broker MQTT** est un serveur qui implémente le protocole MQTT et orchestre les échanges entre clients selon un modèle *publish/subscribe* : les producteurs publient des messages sur des *topics*, et le broker les relaie aux clients abonnés à ces topics.
Un **broker MQTT** est un serveur qui implémente le protocole MQTT et orchestre les échanges entre clients selon un modèle *publish/subscribe*. Les producteurs publient des messages sur des *topics*, et le broker se charge de les relayer aux clients abonnés à ces topics. Ce découplage entre émetteurs et récepteurs en fait une brique centrale des architectures IoT et des systèmes distribués asynchrones.
Au-delà de ce rôle de relais, le broker prend en charge plusieurs fonctions transverses :
## Rôle du broker
- **sécurité** (authentification, TLS, ACL),
- **gestion des sessions** et des reconnexions,
- **gestion des abonnements** et des topics,
- **qualité de service (QoS)** : niveaux 0, 1 et 2,
- **rétention** et stockage temporaire des messages.
Au-delà du simple relais de messages, le broker assure plusieurs fonctions transverses :
Un broker MQTT peut s'exécuter sur des cibles très variées — poste de travail, serveur cloud ou passerelle IoT — et il existe de nombreuses implémentations, open source comme commerciales, à choisir selon la volumétrie, les besoins de sécurité et l'écosystème cible.
- **sécurité** : authentification, chiffrement TLS, listes de contrôle d'accès (ACL) ;
- **gestion des sessions** et reprise après reconnexion ;
- **gestion des abonnements** et de l'arborescence des topics ;
- **qualité de service (QoS)** avec trois niveaux :
- *0* — au plus une fois (best effort, sans accusé),
- *1* — au moins une fois (accusé de réception),
- *2* — exactement une fois (échange en quatre temps) ;
- **rétention** et stockage temporaire des messages pour les clients déconnectés.
Quelques implémentations courantes :
Un broker MQTT peut s'exécuter sur des cibles très variées — poste de travail, serveur cloud, passerelle IoT — et il existe de nombreuses implémentations, open source comme commerciales. Le choix dépend principalement de la volumétrie attendue, des exigences de sécurité et de l'écosystème cible.
- **Mosquitto** — le broker le plus répandu dans les projets DIY et l'IoT léger.
- **EMQX** (ex-EMQTT) — conçu pour absorber un très grand nombre de connexions simultanées.
- **RabbitMQ** — broker multi-protocoles (AMQP, MQTT…) avec support commercial.
- **ActiveMQ** — broker Apache, supporte MQTT en plus de JMS/AMQP.
- **JoramMQ** — orienté intégration Java.
## Quelques implémentations courantes
par la suite, j'ai opté pour mosquitto qui sera installé sur une machine virtuelle Debian (LXC)
- **Mosquitto** — le broker le plus répandu dans les projets DIY et l'IoT léger ; léger, simple à déployer.
- **EMQX** (ex-EMQTT) — conçu pour absorber un très grand nombre de connexions simultanées, adapté aux déploiements industriels.
- **RabbitMQ** — broker multi-protocoles (AMQP, MQTT…) avec support commercial, pertinent quand MQTT cohabite avec d'autres protocoles.
- **ActiveMQ** — broker Apache supportant MQTT en plus de JMS et AMQP, intéressant dans un écosystème Java existant.
- **JoramMQ** — orienté intégration Java, plus rarement rencontré.
## Mon choix
Pour la suite, j'ai retenu **Mosquitto** pour sa légèreté, sa simplicité de configuration et sa large adoption dans la communauté IoT. Il sera installé dans un conteneur **LXC** sous Debian.