🔥 Firehook

Blog · mqtt

Scaler un broker MQTT : du mononoeud au cluster

Comment scaler un broker MQTT : clustering, persistance de session et compromis operationnels.

Pilier broker glossy isometrique avec devices connectes et points lumineux publish/subscribe

Pourquoi le scaling MQTT est particulier

MQTT est centre sur des connexions longues. Un broker peut gerer des centaines de milliers de connexions, mais chaque connexion consomme des ressources.

Le scaling ne concerne pas seulement le debit, mais surtout le nombre de sessions, les retained et l’etat.

Commencer par le vertical

Un broker bien dimensionne sur une seule machine reste plus simple. Cela evite la complexite de la replication d’etat.

Optimisez limites de connexions, keep-alive et stockage retained avant de passer au cluster.

Strategies de clustering

Certains brokers utilisent le sharding, d’autres repliquent les sessions. Le choix influence latence et resilience.

Comprenez comment les subscriptions et retained sont partages entre noeuds, c’est souvent le goulot d’etranglement.

Persistance de session

Les sessions persistantes permettent aux clients de reprendre leurs subscriptions. En cluster, cela exige du stockage ou de la replication.

Tous les clients n’ont pas besoin de persistance. Faites le tri par criticite.

Bridging et sharding

Pour de grands deploiements, on peut shard par region ou client et relier via des bridges. Cela limite le blast radius.

Les bridges ajoutent latence et complexite. Utilisez-les pour l’isolation geo ou multi-tenant.

Observabilite

Surveillez le churn de connexions, le nombre de subscriptions, la taille des retained et le debit. Ces metriques prevoient la saturation.

Testez avec des comportements realistes, y compris des tempetes de reconnexion.

Modes de panne

Planifiez la panne d’un noeud. Que devient l’etat des sessions, les retained et les messages QoS 1/2 ?

Testez les procedures de failover et la capacite des clients a se reconnecter proprement.

FAQ

Faut-il un cluster des le debut ?
Non. Commencez simple tant que les limites ne sont pas atteintes.
Quel est le point le plus dur ?
La gestion des sessions, retained et subscriptions partagees.
Peut-on shard par client ?
Oui, cela renforce l’isolation et les perfs.
Les bridges sont-ils fiables ?
Oui mais ils ajoutent une complexite operationnelle.
Comment tester le scaling ?
Simuler les reconnexions et bursts de messages.