ADC
Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

Equilibrio de carga MQTT

El transporte telemétrico en cola de mensajes (MQTT) es un protocolo de mensajería estándar de OASIS para Internet de las cosas (IoT). MQTT es una tecnología flexible y fácil de usar que proporciona una comunicación eficaz dentro de un sistema de IoT. MQTT es un protocolo basado en un corredor y se usa ampliamente para facilitar el intercambio de mensajes entre los clientes y el corredor.

Los siguientes beneficios clave de MQTT lo convierten en una opción adecuada para su dispositivo de IoT:

  • Fiabilidad
  • Tiempo de respuesta rápido
  • Capacidad para admitir dispositivos ilimitados
  • Publica o suscríbete mensajes que son perfectos para la comunicación de muchos a muchos

El IoT es la red de dispositivos interconectados que están integrados con sensores, software, conectividad de red y la electrónica necesaria. Los componentes integrados permiten a los dispositivos de IoT recopilar e intercambiar datos. El aumento en el uso de dispositivos de IoT plantea múltiples desafíos para la infraestructura de red, siendo Scale el principal. En una implementación a gran escala de dispositivos de IoT, los datos generados por cada dispositivo de IoT deben analizarse rápidamente. Para lograr el requisito de escala y el uso eficiente de los recursos, la carga en el grupo de broker debe distribuirse de manera uniforme. Con la compatibilidad del protocolo MQTT, puede utilizar el dispositivo NetScaler en implementaciones de IoT para equilibrar la carga del tráfico MQTT.

En la siguiente ilustración se muestra la arquitectura MQTT que utiliza un dispositivo NetScaler para equilibrar la carga del tráfico de MQTT.

Sistema MQTT

Una implementación de IoT con el protocolo MQTT tiene los siguientes componentes:

  • Bróker MQTT. Un servidor que recibe todos los mensajes de los clientes y, a continuación, los dirige a los clientes de destino correspondientes. El corredor es responsable de recibir todos los mensajes, filtrarlos, determinar quién está suscrito a cada mensaje y enviar el mensaje a estos clientes suscritos. El corredor es el eje central a través del cual debe pasar cada mensaje.
  • Cliente MQTT. Cualquier dispositivo, desde un microcontrolador hasta un servidor completo, que ejecute una biblioteca MQTT y se conecte a un intermediario de MQTT a través de una red. Tanto los editores como los suscriptores son clientes de MQTT. Las etiquetas de publicador y suscriptor indican si el cliente publica mensajes o está suscrito para recibir mensajes.
  • Balanceador de cargas MQTT. El dispositivo NetScaler está configurado con un servidor virtual de equilibrio de carga MQTT para equilibrar la carga del tráfico de MQTT.

En una implementación típica de IoT, el agente (clúster de servidores) administra el grupo de dispositivos IoT (clientes de IoT). La carga del dispositivo NetScaler equilibra el tráfico de MQTT con los agentes en función de varios parámetros, como ID de cliente, tema y nombre de usuario.

Configurar el equilibrio de carga para el tráfico MQTT

Para que el dispositivo NetScaler equilibre la carga del tráfico MQTT, realice las siguientes tareas de configuración:

  1. Configure los servicios o grupos de servicios de MQTT/MQTT_TLS.
  2. Configure el servidor virtual de equilibrio de carga MQTT/MQTT_TLS.
  3. Enlazar los servicios MQTT/MQTT_TLS al servidor virtual de equilibrio de carga MQTT/MQTT_TLS.
  4. Configure el servidor virtual de conmutación de contenido MQTT/MQTT_TLS.
  5. Configure una acción de conmutación de contenido que especifique el servidor virtual de equilibrio de carga de destino
  6. Configure una directiva de cambio de contenido.
  7. Enlazar la directiva de conmutación de contenido a un servidor virtual de conmutación de contenido que ya esté configurado para redirigir al servidor virtual de equilibrio de carga específico.
  8. Guarde la configuración.

Para configurar el equilibrio de carga para el tráfico de MQTT mediante la CLI

Configure los servicios o grupos de servicios de MQTT/MQTT_TLS.

add service <name> <IP> <protocol> <port> add servicegroup <ServiceGroupName> <Protocol> bind servicegroup <serviceGroupName> <IP> <port>

Ejemplo:

add service srvc1 10.106.163.3 MQTT 1883 add servicegroup srvcg1 MQTT bind servicegroup srvcg1 10.106.163.3 1883

Configure el servidor virtual de equilibrio de carga MQTT/MQTT_TLS.

add lb vserver <name> <protocol> <IPAddress> <port>

Ejemplo:

add lb vserver lb1 MQTT 10.106.163.9 1883

Enlazar los servicios o grupos de servicios de MQTT/MQTT_TLS al servidor virtual de equilibrio de carga de MQTT.

bind lb vserver <name> <serviceName> bind lb vserver <name> <servicegroupName>

Ejemplo:

bind lb vserver lb1 srvc1 bind lb vserver lb1 srvcg1

Configure el servidor virtual de conmutación de contenido MQTT/MQTT_TLS.

add cs vserver <name> <protocol> <IPAddress> <port>

Ejemplo:

add cs vserver cs1 MQTT 10.106.163.13 1883

Configure una acción de conmutación de contenido que especifique el servidor virtual de equilibrio de carga de destino.

add cs action <name> -targetLBVserver <string> [-comment <string>]

Ejemplo:

add cs action act1 -targetlbvserver lbv1

Configure una directiva de cambio de contenido.

add cs policy <policyName> [-url <string> | -rule <expression>] –action <actName>

Ejemplo:

add cs policy cspol1 -rule “MQTT.COMMAND.EQ(CONNECT) && MQTT.CONNECT.FLAGS.QOS.eq(2)-action act1

Enlazar la directiva de conmutación de contenido a un servidor virtual de conmutación de contenido que ya esté configurado para redirigir al servidor virtual de equilibrio de carga específico.

bind cs vserver <virtualServerName> -policyName <policyName> -priority <positiveInteger>

Ejemplo:

bind cs vserver cs1 –policyName cspol1 -priority 20

Guarde la configuración.

save ns config

Para configurar el equilibrio de carga para el tráfico de MQTT mediante la interfaz gráfica de usuario

  1. Vaya aAdministración del tráfico>Equilibrio de carga>Servidores virtualesy cree un servidor virtual de equilibrio de carga de tipoMQTT o MQTT_TLS.
  2. Cree un servicio o grupo de servicios de tipo MQTT.
  3. Enlaza el servicio al servidor virtual MQTT.
  4. Haga clic en Guardar.

Límite de longitud de mensajes MQTT

El dispositivo NetScaler trata los mensajes con una longitud de mensaje superior a 65536 bytes como paquetes gigantes y los descarta de forma predeterminada. El parámetro dropmqttjumbomessage lb decide si procesar los paquetes gigantes o no. Este parámetro se establece de forma predeterminada en YES, lo que implica que los paquetes MQTT gigantes se descartan de forma predeterminada. Si este parámetro se establece en NO, el dispositivo ADC gestiona incluso los paquetes con una longitud de mensaje superior a 65536 bytes.

Para configurar el dispositivo ADC para gestionar paquetes gigantes mediante la CLI:

Set lb parameter –dropMqttJumboMessage [YES | NO]

Ejemplo:

set lb parameter –dropMqttJumboMessage no
La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.
Equilibrio de carga MQTT