2.2 KiB
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 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.
Rôle du broker
Au-delà du simple relais de messages, le broker assure plusieurs fonctions transverses :
- 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.
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.
Quelques implémentations courantes
- 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.