Protocolo MQTT y microservicios, ¿qué son y cómo se relacionan?

Autor: | Última modificación: 20 de febrero de 2024 | Tiempo de Lectura: 2 minutos
Temas en este post:

Algunos de nuestros reconocimientos:

Premios KeepCoding

Protocolo MQTT y microservicios, ¿qué son y cómo se relacionan?

Si te interesa todo lo relacionado con la tecnología y, más en concreto, con el desarrollo de software, probablemente habrás escuchado o leído alguna vez los términos MQTT y microservicios en la misma frase. Si bien existe un vínculo entre ambos, se trata de dos conceptos completamente distintos. En este post, y en el webinar que lo acompaña, vamos a discernir las aplicaciones de cada uno de ellos y qué los relaciona. Como expertos en la cuestión, hemos invitado a Carlos Martínez y Karlo Verde para hablarnos de MQTT y microservicios. El primero es ingeniero electrónico y desarrollador de software, con experiencia en NestJs. El segundo es ingeniero mecatrónico y desarrollador de software igualmente, con experiencia tanto en back-end como front-end web y mobile.

¿Qué son los microservicios?

Los microservicios son una forma de arquitectura de software que consiste en dividir las funcionalidades de una aplicación en varios servicios que se desarrollan y se ejecutan independientemente.
De esta manera, se puede actualizar o escalar una de las partes sin involucrar al resto. Tradicionalmente, el enfoque de la arquitectura de software era monolítico, es decir, se desarrollaban los diferentes procesos como un todo. Las desventajas de este modelo es que cuando se desea optimizar una de las funciones de la aplicación, se tenía que modificar todos los procesos porque eran codependientes. En el modelo de arquitectura basado en microservicios, este problema desaparece. Cada uno de los procesos de un programa representa un servicio que funciona con independencia del resto. Esto permite escalar la aplicación de un negocio más fácilmente y desarrollar proyectos con un nivel de complejidad mayor. Para llevar a cabo sus acciones, los sistemas que se fundamentan en la arquitectura de microservicios tienen que comunicarse entre sí. Esta comunicación puede ser sincrónica (hay que solicitar el acceso) o asíncrónica (mediante un message/event broker). Aquí es donde aparece el vínculo entre protocolo MQTT y microservicios.

Protocolo MQTT y microservicios

Antes de hablar de MQTT, hay que hablar de la figura de broker. Se trata del intermediario entre las comunicaciones de los distintos microservicios. Se encarga de gestionar solicitudes de comunicación como la conexión, envío de mensajes, suscripciones, etc. Uno de los protocolos de comunicación que utilizan los brokers es el MQTT, de las siglas en inglés Message Queuing Telemetry Transport. Consiste en un estándar para mensajería IoT (Internet de las cosas) abierto, que destaca por su ligereza. Este es el punto de conexión entre el concepto protocolo MQTT y microservicios. El protocolo MQTT tiene diferentes niveles de calidad del servicio, denominado técnicamente QoS. Esto se refiere a la cantidad de pasos que se llevan a cabo en una comunicación. De esta manera, puede ser QoS 0 si se manda un topic en una única etapa; QoS 1 si se requiere feedback; o QoS 2 si la comunicación se hace en 4 pasos. Por último, destaca NestJs como uno de los frameworks más populares para integrar microservicios y dispositivos IoT de manera sencilla y modular. Si te interesa ver cómo se hace, échale un vistazo al webinar que motiva este post, donde nuestros invitados explican la implementación con NestJs así como todos los conceptos mencionados aquí con más detalle.
YouTube video