MQTT y Kafka|Práctica de integración de datos de flujo y mensajes de Internet de las cosas

¿Cómo funciona MQTT con Kafka?

MQTT (Message Queuing Telemetry Transport) es un protocolo ligero de transporte de mensajes diseñado para la comunicación de dispositivos en un entorno de red restringido. Apache Kafka es una plataforma de procesamiento de flujo distribuido diseñada para procesar flujos de datos en tiempo real a gran escala.

Kafka y MQTT son tecnologías complementarias para la integración de extremo a extremo de los datos de IoT. Al combinar Kafka y MQTT, las empresas pueden construir una poderosa arquitectura de IoT para lograr una conexión estable y una transmisión de datos eficiente entre dispositivos y plataformas de IoT. Al mismo tiempo, también puede admitir el procesamiento y análisis en tiempo real de datos de alto rendimiento para todo el sistema IoT.

La integración de MQTT y Kafka puede aportar un valor significativo a muchos escenarios de IoT, como automóviles y vehículos conectados, infraestructura de ciudades inteligentes, monitoreo de IoT industrial, gestión logística, etc. En este artículo, presentaremos cómo realizar la integración perfecta de datos MQTT y Kafka en aplicaciones IoT.

¿Qué desafíos de IoT pueden resolver Kafka y MQTT?

Al diseñar una arquitectura de plataforma IoT, se deben abordar varios desafíos:

  • Conectividad y resiliencia de la red : en algunos escenarios críticos de IoT, como los automóviles conectados, los datos deben enviarse a la plataforma a través de una conexión de red. La arquitectura debe poder hacer frente a diversas condiciones de la red, como conexiones de red inestables y retrasos en la red.
  • Escalabilidad : para hacer frente al creciente número de dispositivos, la arquitectura debe tener una buena escalabilidad y ser capaz de manejar la gran cantidad de datos generados por el creciente número de dispositivos IoT.
  • Rendimiento de mensajes : los dispositivos IoT generan cantidades masivas de datos en tiempo real, como lecturas de sensores, información de ubicación y más. La arquitectura de la plataforma debe admitir un alto rendimiento de mensajes para garantizar que todos los datos se recopilen, procesen y distribuyan de manera eficiente a los componentes apropiados.
  • Almacenamiento de datos : los dispositivos IoT generan continuamente flujos de datos, lo que requiere soluciones eficientes de almacenamiento y gestión de datos.

¿Por qué necesita integrar MQTT y Kafka en la arquitectura IoT?

Como plataforma confiable de procesamiento de flujo de datos, Kafka puede promover efectivamente el intercambio de datos entre sistemas empresariales, pero en el escenario de IoT, tiene algunas deficiencias:

  • Conexiones no confiables : los clientes de Kafka requieren conexiones IP estables, lo cual es un desafío para los dispositivos IoT que se ejecutan en redes móviles inestables. Estas redes tienen conexiones muy inestables, provocando interrupciones en la comunicación constante que requiere Kafka.
  • Complejidad del cliente e intensidad de recursos : los clientes de Kafka son conocidos por su complejidad y consumo de recursos. Este es un desafío para los dispositivos IoT pequeños y con recursos limitados, donde puede que no sea práctico o eficiente ejecutar un cliente Kafka.
  • Escalabilidad de temas : Kafka tiene algunas limitaciones en el manejo de una gran cantidad de temas. Esto puede ser un problema para las aplicaciones de IoT, ya que pueden involucrar muchos temas diferentes, y es posible que la arquitectura de Kafka no pueda adaptarse a esto de manera efectiva, especialmente si hay una gran cantidad de dispositivos involucrados, cada uno con un caso de múltiples temas.

A través de la integración de MQTT y Kafka, se pueden superar muchas limitaciones de Kafka en la conexión de dispositivos IoT:

  • Conexiones confiables : MQTT está diseñado para operar en entornos de red inestables, convirtiéndose así en un protocolo confiable de transferencia de mensajes entre dispositivos IoT.
  • Cliente ligero : el cliente MQTT está diseñado para ser ligero, lo que lo hace ideal para dispositivos IoT con recursos limitados.
  • Expansión masiva de temas : MQTT se destaca en el manejo de una gran cantidad de temas comerciales, lo que lo hace ideal para plataformas IoT con una gran cantidad de temas. Los temas masivos se pueden agregar y asignar a temas de Kakfa a través de MQTT para realizar la agregación y el procesamiento de datos de IoT.

Comparación de varias soluciones de integración MQTT-Kafka viables

Hay varias opciones para integrar MQTT y Kafka en plataformas IoT. Cada opción tiene sus propios pros y contras y factores a considerar. Echemos un vistazo a algunas soluciones de integración de MQTT+Kafka comúnmente utilizadas.

Integración de datos EMQX Kafka

EMQX es un bróker MQTT popular, que puede realizar una integración perfecta con Kafka a través de su función de integración de datos Kafka integrada. Como puente entre MQTT y Kafka, EMQX logra una comunicación fluida entre los dos.

Esta integración hace posible crear puentes de datos tanto en el rol de productores (enviando mensajes a Kafka) como en el de consumidores (recibiendo mensajes de Kafka). EMQX permite a los usuarios establecer puentes de datos en cualquiera de estos dos roles. EMQX tiene capacidad de transmisión de datos bidireccional, lo que proporciona una gran flexibilidad para el diseño de la arquitectura. Además, cuenta con baja latencia y alto rendimiento, lo que garantiza operaciones de puente de datos eficientes y confiables.

Bróker MQTT confluente

Confluent es la empresa operadora comercial de Kafka. Proporciona un módulo proxy de protocolo MQTT para conectar clientes MQTT y Kafka Broker, lo que permite a los clientes publicar y suscribirse a temas de Kafka. Esta solución abstrae la complejidad de la comunicación directa con Kafka Broker, simplifica el proceso de integración y evita la replicación y el retraso redundantes.

Actualmente, esta solución solo es compatible con la versión 3.1.1 de MQTT y el rendimiento de la conexión del cliente MQTT puede afectar el rendimiento de los datos.

Desarrollo personalizado de código abierto MQTT Broker y Kafka

Los usuarios pueden utilizar el MQTT Broker de código abierto para desarrollar su propio servicio puente para realizar la conexión entre MQTT y Kafka. Este servicio puente suscribe datos de MQTT Broker a través del cliente MQTT y utiliza Kafka Producer API para enviar datos a Kafka.

Esta solución requiere que los usuarios desarrollen y mantengan los servicios puente por sí mismos y que consideren los problemas de confiabilidad y escalabilidad.

Use EMQX para integrar datos MQTT en Kafka

Como bróker MQTT altamente escalable, EMQX ofrece potentes funciones para las plataformas IoT. Sus capacidades de integración de datos permiten una transmisión bidireccional fácil y eficiente de datos MQTT con Apache Kafka.

Integre datos MQTT en Kafka

EMQX admite conexiones masivas de dispositivos, combinado con las potentes capacidades de procesamiento de datos persistentes y de alto rendimiento de Kafka, crea una infraestructura de datos perfecta para el Internet de las cosas.

EMQX proporciona las siguientes funciones de MQTT a Kafka :

  • Conexión bidireccional : EMQX no solo puede reenviar los mensajes MQTT de los dispositivos a Kafka en lotes, sino también suscribirse a los mensajes de Kafka desde el sistema back-end y enviarlos a los clientes de IoT conectados.
  • Asignación flexible de temas de MQTT a Kafka : EMQX admite múltiples métodos de asignación de temas, como uno a uno, uno a muchos, muchos a muchos, etc., y también admite filtros de temas MQTT (comodines).
  • El productor EMQX Kafka admite el modo de escritura síncrono/asincrónico, que puede equilibrar de manera flexible el retraso y el rendimiento según diferentes escenarios.
  • Las métricas en tiempo real , como la cantidad total de mensajes, la cantidad de entregas exitosas o fallidas, la tasa de mensajes, etc., se pueden usar junto con las reglas de SQL para extraer, filtrar, enriquecer y transformar datos antes de enviar mensajes a Kafka o dispositivos. .

Ejemplo de escenario de aplicación: MQTT y Kafka Habilitación de automóviles conectados e Internet de vehículos

La arquitectura de MQTT + Kafka es adecuada para varias plataformas IoT en diferentes industrias, especialmente en el campo de los automóviles conectados y el Internet de los Vehículos.

MQTT y Kafka potencian los coches conectados y el Internet de los vehículos

Los siguientes son los principales escenarios de aplicación de esta arquitectura:

  • Sistema de información en el vehículo y análisis de datos del vehículo : la arquitectura MQTT + Kafka puede realizar acceso a la nube, procesamiento de flujo y análisis de datos masivos del vehículo en tiempo real, como lecturas de sensores, ubicación GPS, consumo de combustible y datos de comportamiento de conducción, etc. Estos datos se pueden utilizar para la supervisión del rendimiento del vehículo, el mantenimiento predictivo, la gestión de flotas y la mejora de la eficiencia operativa general.
  • Gestión inteligente del tráfico : al integrar MQTT y Kafka, se pueden adquirir y procesar datos de varias fuentes de tráfico, como automóviles conectados, sensores de tráfico e infraestructura. Esto facilita el desarrollo de sistemas inteligentes de gestión del tráfico que permiten la supervisión del tráfico en tiempo real, la detección de congestiones, la optimización de rutas y el control inteligente de señales de tráfico.
  • Diagnóstico remoto : la arquitectura MQTT + Kafka admite la transmisión de datos de alto rendimiento para automóviles conectados. Se puede utilizar para diagnósticos y resolución de problemas remotos, lo que permite un mantenimiento proactivo y una resolución rápida de problemas.
  • Eficiencia energética e impacto ambiental : la arquitectura MQTT + Kafka permite que los automóviles conectados tengan una interacción bidireccional de datos con sistemas de redes inteligentes y plataformas de gestión de energía. Este escenario de aplicación incluye monitorear el consumo de energía en tiempo real, implementar mecanismos de respuesta a la demanda y optimizar las estrategias de carga de vehículos eléctricos.
  • Mantenimiento predictivo : la arquitectura MQTT + Kafka permite el seguimiento continuo de los datos de estado y rendimiento del vehículo. Este escenario de aplicación implica la recopilación de datos en el vehículo en tiempo real de alto rendimiento, la detección de anomalías y los algoritmos de mantenimiento predictivo. Los propietarios de automóviles pueden descubrir problemas potenciales a tiempo y programar tareas de mantenimiento.

epílogo

La arquitectura MQTT + Kafka es muy adecuada para escenarios de aplicaciones que requieren recopilación de datos en tiempo real, escalabilidad, confiabilidad y capacidades de integración de IoT. Permite una transmisión de datos fluida, una comunicación eficiente y aplicaciones innovadoras, como diversas funciones y servicios en el ecosistema del automóvil conectado. Por lo tanto, la combinación de MQTT y Kafka es una solución de arquitectura de IoT ideal, que permite una integración perfecta de extremo a extremo entre los dispositivos de IoT y la nube, y garantiza la confiabilidad de la comunicación bidireccional.

Declaración de derechos de autor: este artículo es original de EMQ, indique la fuente para la reimpresión.
Enlace original: https://www.emqx.com/zh/blog/mqtt-and-kafka

Supongo que te gusta

Origin blog.csdn.net/emqx_broker/article/details/131853405
Recomendado
Clasificación