¿Por qué MQTT no es un protocolo escalable?

No hay ninguna razón por la cual MQTT no pueda ser escalable. No he tenido problemas para implementar MQTT en un clúster de akka y escalarlo en varios nodos.

El único problema que encontré fue escalar el uso de comodines en varios nodos, y resultó ser un poco menos sensible de lo que quería cuando se usaban los comodines, porque quería asegurarme de que los mensajes se reenviaran solo a pares que estaban escuchando una suscripción que coincidía correctamente con el comodín …

Pero resultó que en la aplicación del mundo real, los comodines no se utilizaron en absoluto en mi escenario, por lo que resultó ser perfectamente escalable. Si puede renunciar al uso de comodines, eliminará gran parte de la complejidad.

Otra cosa que ayudó fue limitar la duración de la sesión, por lo que el cliente se inicia periódicamente y se ve obligado a volver a conectarse, por lo que el clúster se reequilibra. Dada la naturaleza de MQTT, eso no causó ningún problema para nuestros clientes.

MQTT escala muy bien. Es por eso que Amazon lo está utilizando para su servicio AWS IOT. No hay ninguna razón por la cual MQTT no pueda escalar hasta tantas conexiones como websocket o http o cualquier otro protocolo basado en TCP / IP.