RabbitMQ Gestor de Cola

¿Qué es un gestor de Colas?

Un gesto de colas es un software llamado Broker que se encarga de enviar y recibir mensajes entre distintos servicios, creando colas de mensajes entre los mismos para que se vayan recibiendo y no se pierdan, también se encarga de asegurar que se reciben los mensajes.

RabbitMQ
RabbitMQ

Sobre RabbitMQ

Funcionamiento de RabbitMQ

Rabbit es un Broker de mensajería, es decir, un servidor que se encarga de enviar paquetes a quien se suscriba a sus colas. Pero ¿qué es una cola? una cola es una memoria que almacena los menajes que se envían a un suscriptor, si el suscriptor se cae o si no puede recibir tantas peticiones los mensajes quedan almacenados en la cola. Y ¿quien envía los mensajes? pues los publicadores, al final Rabbit MQ lo que hace es unir a alguien que manda un mensaje y alguien que lo recibe.

Además de las colas los mensajes llevan acuse de recibo, de tal forma que si alguien recibe el mensaje le dice a Rabbit RECIBIDO, si no se lo confirma Rabbit se lo vuelve a mandar.

Protocolos

Además de ser un servicio optimizado para mensajería lo que debería hacerlo más rápido que uno porgramado por nosotros mismos, Rabbit permite conmutar entre distintos tipos de mensajes o colas, concretamente tres protocolos.

AQMP

Advanced Messange Queuing Protocol

Protocolo estandar abierto en la capa de aplicación, permite una comunicación publicador suscriptor, es orientado a mensajes, encolamiento, enrutamiento, exactitud y seguridad.

Protocolo MQTT (Imagen de Wikipedia)
Protocolo MQTT (Imagen de Wikipedia)

Existe cuatro formas de enrutar un mensaje: Directos (a una cola concreta), Fanout (manda un mensaje a cada cola ligada), topic (a todas las colas conectadas a ese topic) y Headers (es enviado a las colas que cumplan con la cabecera).

AMQT es un protocolo muy seguro y rápido, con gran garantía de recibir los mensajes entre el publicador y el suscriptor.

MQTT

Message Queue Telemetry Transport

Es un protocolo simple, permite autenticación y cifrado SSL/TLS. Es usado para la comunicación máquina con máquina y tiene mucho tirón en los IoTs por su bajo consumo en ancho de banda. La comunicación se basa en topics, que se organinzan de forma jerárquica.

Dispone de tres variantes en cuanto a calidad de Servicio QoS, el publicador puede definir tres: QoS0 (entrega el mensaje una vez y sin garantía de recepción, no confiable), QsS1 (se envia varias veces para que el Brocker confirme la recepción) y QoS2 (el published guarda el mensaje siempre que el broker no confirme su envío a través de la red).

STOMP

StompJS
StompJS
Simple/Streaming Text Oriented Messangin Protocol

Es el único basado en texto, como ejemplo de un JSON o un XML. No posee topics de suscripción, colas o intercambios de mensajes. Es muy sencillo de implementar.

Protocolos Web

Tanto Stomp como MQTT pueden ser usados en websocket, es decir, pueden ser comunicaciones asíncronas con un navegador web.

Vhost

RabbitMQ permite configurar diferentes Vhost, imagina que tenemos una comunicación con el back end, otra con front end y usamos Rabbit para enlazar todas las comunicaciones asincronas. No nos interesa que un navegador pueda acceder a las colas del back end por lo que podemos gestionar dos Vhost, uno de front end y otro de back end.

Summary
RabbitMQ Gestor de Cola
Article Name
RabbitMQ Gestor de Cola
Description
Rabbit es un gestor de mensajería y de colas que funciona con varios protocolos.
Author
Publisher Name
Drouiz
Publisher Logo

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.