draft: 120 · broker
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user