MQTT y la escalabilidad del broker

MQTT y la escalabilidad del broker

La escalabilidad del broker MQTT

Un intermediario o broker MQTT escala de forma parabólica a medida que se agregan dispositivos, por lo que siempre debe tener esto en cuenta al escalar cualquier plataforma de Internet de las Cosas o Internet Industrial de las cosas basada en MQTT.

Hay varias opciones para desarrollar un broker de mensajes con funcionalidades dúplex completas y varias características de soporte. Algunas de estas opciones son el uso de un socket TCP sin procesar, un socket UDP sin procesar, AMQP y CoAP.  La mayoría de estas alternativas tienen más limitaciones y complicaciones que beneficios, especialmente en comparación con MQTT. Aquí es donde MQTT se convierte en la opción más apropiada, eficiente y conveniente, especialmente al construir nuestra propia plataforma de Internet de las cosas.

Recuerde que todos estos protocolos pueden coexistir y podríamos implementarlos en la misma instancia de nube, si fuera necesario. Esto significa que, en el futuro, si decide utilizar AMQP además de MQTT, es posible integrar algunos de ellos o todos. Más importante aún, podemos vincular estos canales con un programa de complementos adicional para que haya una comunicación fluida desde la perspectiva de una aplicación y un dispositivo.

Uso de un broker de este tipo

Básicamente, MQTT es un protocolo asíncrono y, por lo tanto, permite la comunicación dúplex con una carga ligera para los sistemas. Permite que los sistemas funcionen con poco ancho de banda y poca energía. Por el contrario, HTTP y protocolos similares requieren un ancho de banda y una potencia relativamente altos y son de naturaleza solicitud-respuesta (request /response), lo que significa que el cliente siempre debe iniciar la comunicación.

En lugares donde desee que cualquiera de las partes (servidor o cliente) inicie la comunicación, MQTT es la mejor opción. Además, si los sistemas necesitan funcionar con un bajo consumo de datos, especialmente con baterías, durante un período prolongado, es prudente utilizar MQTT. Si el dispositivo necesita enviar o recibir datos con frecuencia y de forma aleatoria, entonces MQTT también tiene sentido porque reduce una sobrecarga HTTP significativa.

Si el ancho de banda y la potencia no son una preocupación, HTTP puede ser una mejor opción. También podría ser una mejor opción cuando la frecuencia de envío o recepción de datos no es alta, lo que puede bloquear los recursos antes en el proceso.

Por qué y cuándo utilizar MQTT para mensajería de IoT

En una aplicación donde se requiere control o monitoreo en vivo, MQTT es una opción obvia porque proporciona capacidades de comunicación dúplex y bidireccional con la menor cantidad de gastos generales.

Debe tener en cuenta el hecho de que la carga de trabajo de un sistema basado en MQTT puede crecer de manera parabólica, lo que significa que por cada dispositivo agregado a la red hablante MQTT que tiene n dispositivos en total, la carga en el sistema se vuelve n al cuadrado n * norte. La siguiente figura explica este concepto gráficamente.

Mensajes MQTT

Mensajes MQTT

 

Las cargas de la plataforma basada en MQTT aumentan en n-cuadrado. Por ejemplo, supongamos un escenario extremo en el que hay dos clientes en los que cada uno se suscribe a todos los temas posibles. Cuando un cliente publica un mensaje, el corredor necesita recibir un mensaje y otro cliente también necesita recibir el mensaje. Esto significa que un mensaje enviado podría resultar en dos transmisiones. Lo mismo ocurre con el otro cliente, por lo que son cuatro mensajes en total para un sistema de dos clientes.

Para un sistema de tres clientes, este número se convierte en nueve mensajes en total (es decir, tres mensajes por cliente). El simple hecho de tener 10 dispositivos conectados significa que el intermediario de mensajes debería ser capaz de manejar 10 * 10 (es decir, 100 mensajes, etc.).

Cuando el número de clientes de MQTT comience a crecer, la carga en el intermediario o broker de mensajes, el sistema en general y la plataforma crecerá casi exponencialmente.

Siempre tenga esto en cuenta al escalar cualquier plataforma de IoT basada en MQTT en las etapas posteriores o agregarle más dispositivos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *