Gratis ¡Obtén tu consultoría de 1 hora—agenda tu sesión hoy mismo! »

· Eduardo Vieira · IIoT  · 2 min de lectura

Fundamentos de MQTT: publish/subscribe, brokers y clientes

Cómo la arquitectura publish/subscribe de MQTT mantiene el flujo de datos entre OT e IT de forma confiable.

Cómo la arquitectura publish/subscribe de MQTT mantiene el flujo de datos entre OT e IT de forma confiable.

Fundamentos de MQTT: publish/subscribe, brokers y clientes

MQTT es mi protocolo de cabecera para conectar equipos de planta con plataformas analíticas. Su modelo publish/subscribe desacopla productores y consumidores, ideal para unir OT e IT. Así encajan las piezas en despliegues reales.

1. Publish/subscribe en palabras simples

  • Publishers envían mensajes a tópicos (p. ej., planta/linea1/horno).
  • Subscribers reciben mensajes de los tópicos que les interesan.
  • Broker se ubica en medio, autentica clientes, enruta mensajes y puede retener el último valor.

A diferencia de protocolos request/response, los publicadores y suscriptores no necesitan conocerse, lo que simplifica el escalado.

2. Diagrama de arquitectura MQTT

flowchart LR
  PLC[PLC / Gateway de borde] --> Broker((Broker MQTT))
  Sensor[Sensor inteligente] --> Broker
  Broker --> Dashboard[Dashboards / BI]
  Broker --> CMMS[CMMS]
  Broker --> Twin[Gemelo digital]

3. Calidad de servicio (QoS)

  • QoS 0: “Como máximo una vez” – mejor esfuerzo. Úsalo para telemetría no crítica.
  • QoS 1: “Al menos una vez” – requiere acuse. Útil para valores de proceso y alarmas.
  • QoS 2: “Exactamente una vez” – handshake de dos fases. Resérvalo para comandos o transacciones sensibles.

Elige QoS por tópico según criticidad y estabilidad de red.

4. Ejemplo de cliente

import json
from paho.mqtt.client import Client

client = Client(client_id="edge-linea1")
client.tls_set("ca.pem", "edge.pem", "edge.key")
client.username_pw_set("linea1", "pass")
client.connect("broker.planta", 8883)

client.publish("planta/linea1/temperatura", json.dumps({"valor": 87.5}), qos=1)
client.subscribe("planta/linea1/comandos/#", qos=1)

5. Mensajes retenidos y Last Will

  • Retained Messages: El broker almacena el último mensaje de un tópico. Perfecto para dashboards que necesitan un valor inmediato.
  • Last Will and Testament: Configura a los clientes para anunciar desconexiones inesperadas y alertar al mantenimiento.

6. Consejos de diseño de tópicos

  • Usa jerarquías: planta/linea/estacion/parametro.
  • Reserva prefijos para monitoreo del sistema (planta/linea1/_sys/heartbeat).
  • Evita espacios y mantén los tópicos en minúsculas para consistencia.

7. Esenciales de seguridad

  • Obliga TLS con certificados de cliente.
  • Usa ACL para restringir qué tópicos puede publicar/suscribirse cada cliente.
  • Rota credenciales y certificados periódicamente.
  • Monitorea conteo de conexiones y tasas de publicación anómalas.

8. Estrategias de escalado

  • Despliega brokers en clúster (HiveMQ, EMQX, Mosquitto con bridging) para redundancia.
  • Usa suscripciones compartidas para balancear carga en consumidores.
  • Integra con IAM empresarial para gestionar usuarios centralizadamente.

9. Puente entre OT e IT

Combina MQTT con gateways edge que normalizan datos de PLC en payloads estructurados. Servicios aguas abajo—dashboards, CMMS, machine learning—consumen los mismos streams sin integraciones punto a punto.

La simplicidad de MQTT esconde su potencia. Con diseño disciplinado de tópicos, selección de QoS y controles de seguridad, se convierte en la columna vertebral de arquitecturas IIoT resilientes.

Volver al blog

Related Posts

View All Posts »