30 lines
2.2 KiB
Markdown
30 lines
2.2 KiB
Markdown
# 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. |