Que es rabbitMQ y como implementarlo en nestjs

Jaime Hernández
3 min readMar 18, 2023

--

RabbitMQ es un software de intermediación de mensajes de código abierto que se utiliza para enviar y recibir mensajes entre aplicaciones y sistemas distribuidos. Es una implementación del protocolo de Advanced Message Queuing Protocol (AMQP) y permite que las aplicaciones se comuniquen de manera asíncrona y escalable.

RabbitMQ funciona como un intermediario entre las aplicaciones, recibiendo mensajes de una aplicación y entregándolos a otra. Estos mensajes se pueden enviar de forma segura, confiable y rápida. RabbitMQ se utiliza comúnmente en aplicaciones empresariales, en particular en aquellas que requieren una comunicación de alta disponibilidad y de alta velocidad entre sistemas distribuidos.

RabbitMQ se puede integrar con varios lenguajes de programación y plataformas, incluyendo Java, Python, Ruby, .NET, entre otros. Además, RabbitMQ ofrece diversas características, como la capacidad de encolar mensajes, enrutarlos según criterios específicos, implementar políticas de recuperación de errores y soporte para clústeres.

Para implementar RabbitMQ en NestJS, puedes seguir los siguientes pasos:

Instala el paquete amqplib para Node.js utilizando el administrador de paquetes npm:

npm install amqplib

Importa el módulo AMQPModule de NestJS y configura la conexión a RabbitMQ en el archivo app.module.ts:

Crea un consumidor que escuche mensajes de una cola específica en el archivo consumer.service.ts:

En este ejemplo, el consumidor está configurado para escuchar mensajes con la clave de enrutamiento “my-routing-key” en la cola “my-queue” del intercambio “my-exchange”.

Crea un productor que envíe mensajes a una cola específica en el archivo producer.service.ts:

En este ejemplo, el productor envía un mensaje con el contenido especificado a la cola “my-queue”.

Finalmente, puedes inyectar los servicios ConsumerService y ProducerService donde sea necesario y utilizarlos para recibir y enviar mensajes, respectivamente.

En este ejemplo, el controlador expone una ruta GET que utiliza el servicio ProducerService para enviar un mensaje a la cola "my-queue".

Espero que esto te ayude a implementar RabbitMQ en NestJS. ¡Buena suerte!

--

--

No responses yet