MQTT managé dans le cloud

Comment choisir un broker MQTT pour l'IoT : 12 critères et les questions à poser à votre fournisseur

Une checklist pratique en 12 points pour choisir un broker MQTT IoT, un tableau de questions à poser à chaque fournisseur et un test pratique de cinq minutes à lancer sur broker.connectmq.com.

Checklist à côté d'un réseau d'appareils IoT connectés à un broker MQTT IoT central dans le cloud
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Choisir un broker MQTT IoT fait partie des rares décisions d'infrastructure qui concernent chacun des appareils que vous livrerez, et il vaut donc mieux bien faire ce choix avant la première version du firmware. Ce guide vous propose une checklist en 12 points, un tableau de questions à poser à n'importe quel fournisseur et un test pratique que vous pouvez lancer en cinq minutes. Au fil de l'article, nous montrons comment ConnectMQ répond à chaque point, en nous limitant aux fonctionnalités qu'il possède réellement.

Si vous hésitez encore entre exploiter votre propre broker et utiliser un service, lisez d'abord Qu'est-ce qu'un broker MQTT managé ?.

Pourquoi le choix du broker MQTT IoT est déterminant

Le broker se trouve au milieu de chaque message : les appareils y publient, les applications s'y abonnent. Une fois que des milliers d'appareils ont un nom d'hôte, un port, une chaîne de certificats et une structure de topics gravés dans leur firmware, changer de broker devient une migration coûteuse. Le broker définit aussi votre périmètre de sécurité, votre plafond de montée en charge et une bonne partie de vos coûts d'exploitation mensuels.

Une bonne démarche de sélection va donc au-delà de la question « parle-t-il MQTT ? » et examine la profondeur du support protocolaire, la sécurité, l'isolation, l'exploitation et le chemin du prototype à la production.

La checklist en 12 points pour choisir un broker MQTT IoT

1. Prise en charge du protocole : MQTT 3.1.1 et MQTT 5.0

La plupart des appareils et bibliothèques existants parlent MQTT 3.1.1, tandis que les nouveaux projets profitent des fonctionnalités de MQTT 5.0 : reason codes, expiration des sessions et des messages, topic aliases, shared subscriptions et requête/réponse. Un broker doit prendre en charge les deux versions côte à côte pour que les anciens et les nouveaux appareils puissent cohabiter. Vérifiez quelles fonctionnalités MQTT 5 sont réellement implémentées, et pas seulement si le paquet CONNECT est accepté. La liste complète figure dans la spécification OASIS MQTT 5.0, et notre guide des fonctionnalités de MQTT 5 les explique en pratique.

ConnectMQ : prend en charge MQTT 3.1.1 et MQTT 5.0, y compris les shared subscriptions, les retained messages, l'expiration de session, les topic aliases, l'intervalle d'expiration des messages, le response topic et les reason codes. Le CONNACK annonce les limites du broker (Maximum QoS, Retain Available, Wildcard et Shared Subscription Available, Receive Maximum).

2. Transport : TCP, TLS et WebSocket

Les appareils sur des réseaux contraints peuvent utiliser du TCP en clair pendant le développement, mais le trafic de production doit être chiffré. Les navigateurs et tableaux de bord ont besoin de MQTT sur WebSocket, idéalement en WebSocket sécurisé (WSS) pour fonctionner depuis des pages HTTPS.

ConnectMQ : TCP sur le port 1883, TLS sur le 8883, WebSocket sur le 8083 et WSS sur le 8084 (chemin /mqtt), avec un certificat Let's Encrypt déjà reconnu par les magasins de CA standard.

3. Authentification

Demandez comment les appareils prouvent leur identité et comment les identifiants sont émis et renouvelés. Au minimum, il vous faut des identifiants par broker et une protection contre l'usurpation d'identité entre clients via le client ID.

ConnectMQ : le nom d'utilisateur et le mot de passe sont émis par broker dans le portail, et les client IDs sont limités au client ID émis et à ses variantes _suffix (par exemple YOUR_CLIENT_ID_sensor1). Consultez nos bonnes pratiques de sécurité MQTT pour une vue d'ensemble.

4. Multi-tenant et isolation

Sur un service partagé, vos topics doivent être invisibles pour tous les autres clients. Si vous développez un produit pour vos propres clients, il vous faut la même garantie un niveau plus bas.

ConnectMQ : les topics de chaque tenant sont isolés des autres tenants et de la zone de test publique. Si vous avez aussi besoin d'une isolation au niveau de l'infrastructure, l'offre Dedicated vous fournit votre propre cluster de brokers.

5. Montée en charge et limites de connexion

Examinez les limites de connexions simultanées par offre, les limites de taille des messages et la façon de passer d'un palier à l'autre sans modifier le code des appareils.

ConnectMQ : Serverless (Free) autorise jusqu'à 25 connexions simultanées et des messages de 256 Ko ; Serverless (Paid) jusqu'à 1 000 connexions et des messages de 1 Mo ; Dedicated, BYOC et Self Managed Enterprise couvrent les déploiements plus importants et isolés.

6. QoS et sessions

Les QoS 1 et 2 vous apportent des garanties de livraison ; les sessions persistantes permettent aux appareils qui se reconnectent de récupérer les messages en file d'attente. Vérifiez quels niveaux de QoS chaque offre prend en charge et combien de temps les sessions sont conservées. Pour le contexte : Les niveaux de QoS MQTT expliqués.

ConnectMQ : QoS jusqu'à 1 en Serverless (Free), QoS 2 en Serverless (Paid) ; l'expiration de session est plafonnée selon l'offre.

7. Retained messages et messages hors ligne

Les retained messages fournissent immédiatement à chaque nouvel abonné la dernière valeur connue, ce qui est indispensable pour l'état et la configuration des appareils. Les messages Last Will informent le reste du système lorsqu'un appareil décroche.

ConnectMQ : les retained messages sont pris en charge sur toutes les offres, les messages Last Will sont délivrés comme l'exige la spécification, et $SYS/broker/connection/{clientId}/state expose l'état de connexion d'un client.

8. Standards industriels : Sparkplug B et ISA-95

Les usines organisent de plus en plus leurs données dans un Unified Namespace qui suit les niveaux ISA-95 (entreprise, site, zone, ligne, cellule) et utilisent Sparkplug B pour des payloads typés et avec état. Un broker qui comprend ces conventions économise du travail d'intégration.

ConnectMQ : détecte les structures de topics ISA-95 / Unified Namespace, détecte et décode Sparkplug B (Protobuf et JSON) et peut republier du Sparkplug B dans une structure ISA-95 ; par exemple, spBv1.0/factory1/DDATA/line1/cnc1 devient connectmq/factory1/production/line1/cnc1/telemetry. Pour en savoir plus : Sparkplug B et Unified Namespace.

9. Observabilité

Quand un appareil se comporte mal à 3 heures du matin, vous devez voir ce qu'il a publié et pourquoi il a été rejeté. Recherchez une vue des topics en temps réel, l'état des connexions et des codes d'erreur explicites.

ConnectMQ : le portail comprend un tableau de bord, un client MQTT dans le navigateur, un explorateur de topics en temps réel, une vue des appareils organisée selon les niveaux ISA-95, des règles d'alerte à seuil et un journal des alertes. Les reason codes MQTT 5 comme 0x97 (Quota exceeded) et 0x89 (Server busy) expliquent les rejets, et l'extension VS Code de ConnectMQ affiche les reason codes CONNACK, SUBACK et PUBACK pendant le développement.

10. Modèles de déploiement

Certaines équipes veulent zéro exploitation ; d'autres doivent conserver leurs données dans leur propre compte cloud ou sur site.

ConnectMQ : Serverless (cluster partagé), Dedicated (cluster isolé), BYOC (brokers dans votre propre compte cloud, gérés par ConnectMQ) et Self Managed Enterprise (broker sous licence sur votre propre infrastructure).

11. Quotas et protection

Un seul appareil bogué coincé dans une boucle de reconnexion peut pénaliser tous les utilisateurs du broker. Demandez comment le broker se protège, lui et votre tenant.

ConnectMQ : quotas par offre, protection contre les rafales de connexions avec bannissements temporaires, blocage d'IP après des tentatives répétées avec de mauvais identifiants et protection adaptative contre la surcharge.

12. Coût et exploitation

Comparez le coût total : calcul, stockage, correctifs, renouvellement des certificats, supervision, astreinte et mises à jour. Une offre gratuite qui permet de prototyper sans carte bancaire réduit le risque de l'évaluation.

ConnectMQ : un broker MQTT managé, entièrement exploité pour vous, avec une offre Serverless gratuite (sans carte bancaire) et des paliers payants lorsque vous avez besoin de limites de production. Consultez le détail actuel des offres sur connectmq.com.

Les questions à poser à votre fournisseur de broker MQTT IoT

Utilisez ce tableau comme grille d'évaluation. Copiez-le dans votre propre document et remplissez une colonne par candidat.

Critère Question à poser Réponse de ConnectMQ
Protocole Quelles versions de MQTT et quelles fonctionnalités MQTT 5 sont implémentées ? MQTT 3.1.1 et 5.0 ; shared subscriptions, topic alias, expiration, response topic, reason codes
Transport Quels ports pour TCP, TLS, WS et WSS ? Quel certificat ? 1883, 8883, 8083, 8084 ; Let's Encrypt
Authentification Comment les identifiants sont-ils émis ? Un appareil peut-il usurper un autre client ID ? Nom d'utilisateur/mot de passe par broker ; client ID limité à l'ID émis et à ses variantes _suffix
Isolation D'autres clients peuvent-ils voir mes topics ? Non, les topics des tenants sont isolés
Montée en charge Quelles sont les limites de connexions et de taille des messages par offre ? 25 / 256 Ko (Free), 1 000 / 1 Mo (Paid), Dedicated au-delà
QoS Quels niveaux de QoS par offre ? Expiration de session ? QoS 1 (Free), QoS 2 (Paid) ; expiration de session plafonnée par offre
État Retained messages, Last Will, état de connexion ? Oui ; $SYS/broker/connection/{clientId}/state
Industrie Prise en charge de Sparkplug B et d'ISA-95 ? Détecte et décode Sparkplug B, republie vers des topics ISA-95
Observabilité Puis-je voir les topics, les appareils et les alertes en temps réel ? Tableau de bord du portail, explorateur de topics, vue des appareils, règles d'alerte
Déploiement Partagé, dédié, dans mon cloud, sur site ? Serverless, Dedicated, BYOC, Self Managed Enterprise
Protection Comment sont gérées les rafales et les attaques par force brute ? Quotas, bannissements anti-rafales, blocage d'IP, protection contre la surcharge
Essai Puis-je tester sans carte bancaire ? Oui, Serverless (Free) et le serveur MQTT public gratuit

Demandez aussi à chaque fournisseur ce qui n'est pas inclus. Par exemple, ConnectMQ se concentre sur le broker lui-même : il ne propose pas de moteur de règles côté serveur, de webhooks ni de passerelles de données intégrées vers Kafka ou des bases de données. Si vous en avez besoin, prévoyez de consommer les données avec votre propre service abonné.

Test rapide sur broker.connectmq.com

Les fiches techniques ont leurs limites. Avant de présélectionner un broker MQTT IoT, connectez-y un vrai client. Le serveur MQTT public gratuit de ConnectMQ ne nécessite aucun compte, seulement un client ID non vide et un préfixe de topic unique (tout ce qui se trouve dans la zone publique est lisible par les autres : utilisez uniquement des données de test). Tous les détails sont dans notre guide du serveur MQTT public gratuit, réservé aux tests et aux prototypes.

export ID=eval-$(openssl rand -hex 3)

# Terminal 1 : s'abonner en MQTT 5
mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-sub -t "connectmq/demo/$ID/#" -v -V mqttv5

# Terminal 2 : publier un statut retenu et une mesure de télémétrie en TLS
mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-pub -V mqttv5 -t "connectmq/demo/$ID/status" -m "online" -r -q 1
mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-pub -V mqttv5 -t "connectmq/demo/$ID/telemetry" -m '{"temp": 23.1}'

# Nettoyer le retained message
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -n -r

Sous Windows ou macOS, remplacez --capath /etc/ssl/certs par --cafile pointant vers un bundle CA au format PEM. Pendant le test, vérifiez les critères observables directement :

  • Latence : les messages doivent apparaître presque instantanément dans le terminal 1.
  • Retained messages : arrêtez puis relancez l'abonné ; le statut online arrive aussitôt.
  • Last Will : ajoutez --will-topic "connectmq/demo/$ID/status" --will-payload offline à un client puis tuez-le ; l'abonné reçoit offline.
  • Limites : la zone publique autorise 64 Ko par message et 10 messages par seconde et par client ; en cas de dépassement, vous obtenez des reason codes MQTT 5 plutôt que des pertes silencieuses.

Pour une évaluation en conditions de production, répétez le test avec un broker privé et les identifiants fournis par le portail :

mosquitto_sub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -V mqttv5 -u YOUR_USERNAME -P YOUR_PASSWORD -i YOUR_CLIENT_ID -t "#" -v

Démarrer avec ConnectMQ

La meilleure façon d'évaluer un broker MQTT IoT, c'est d'y connecter vos propres appareils. Inscrivez-vous sur app.connectmq.com : l'offre Serverless (Free) ne demande pas de carte bancaire. Créez un broker, copiez le nom d'utilisateur, le mot de passe et le client ID générés, et regardez vos premiers messages arriver dans l'explorateur de topics en temps réel.

Questions fréquentes

Quel est le critère le plus important pour choisir un broker MQTT IoT ?

La sécurité et l'isolation passent en premier : transport chiffré, authentification par appareil et séparation garantie vis-à-vis des autres tenants. Vérifiez ensuite la prise en charge de MQTT 5 et des limites adaptées à la taille de votre flotte.

Ai-je besoin de MQTT 5.0 pour un projet IoT ?

Pas strictement, car MQTT 3.1.1 fonctionne toujours bien, mais MQTT 5 ajoute les reason codes, les intervalles d'expiration, les shared subscriptions et le modèle requête/réponse, qui facilitent l'exploitation des systèmes plus importants. Choisissez un broker qui prend en charge les deux versions.

ConnectMQ prend-il en charge Sparkplug B ?

Oui. ConnectMQ détecte et décode les payloads Sparkplug B (Protobuf et JSON) et peut les republier dans une structure de topics Unified Namespace conforme à ISA-95.

Puis-je tester ConnectMQ sans créer de compte ?

Oui. Connectez-vous à broker.connectmq.com sans identifiants, avec un client ID non vide et un préfixe de topic unique. N'oubliez pas que la zone publique est lisible par tous.

Puis-je exécuter ConnectMQ dans mon propre cloud ou datacenter ?

Oui. En plus des offres Serverless et Dedicated, ConnectMQ propose BYOC (brokers dans votre propre compte cloud, gérés par ConnectMQ) et Self Managed Enterprise pour votre propre infrastructure.

Articles liés

Broker MQTT BYOC : le modèle Bring Your Own Cloud expliqué

Un broker MQTT BYOC tourne dans votre compte cloud mais est exploité par un fournisseur. Découvrez le fonctionnement du modèle, la répartition des responsabilités et comment préparer votre compte.

9 min de lecture

Messages MQTT par seconde : comment estimer et mesurer le débit

La planification du débit MQTT se résume à quelques formules et à une mesure honnête. Découvrez comment estimer les messages entrants et sortants par seconde, tenir compte des pics et faire correspondre le résultat à une offre de broker.

8 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.