Skip to content

Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Desktop, amqplib, entre otros.

License

Notifications You must be signed in to change notification settings

andresWeitzel/RabbitMQ_Nodejs_example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RabbitMQ_Nodejs_example

Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Dektop, amqplib, entre otros.


Índice 📜

Ver

Sección 1) Descripción, configuración y tecnologías

Sección 2) Endpoints y Ejemplos

Sección 3) Prueba de funcionalidad y Referencias



Sección 1) Descripción, configuración y tecnologías

1.0) Descripción 🔝

Ver

1.0.0) Descripción General

1.0.1) Descripción Arquitectura y Funcionamiento


1.1) Ejecución del Proyecto 🔝

Ver

1.1.0) Configuraciones iniciales

  • Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
git clone https://github.com/andresWeitzel/RabbitMQ_Nodejs_example
  • Nos posicionamos sobre el proyecto
cd 'projectName'
  • Instalamos la última versión LTS de Nodejs(v18).
  • Instalamos todas las librerías necesarias
npm i

1.1.1) Docker para Windows 10/11 (64 bits).

  • Descargamos e instalamos el JDK de Java > 8.x para poder implementar docker.
  • Descargamos Docker (para windows).
  • Abrimos una PS como admin y habilitamos el subsistema de linux :
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • Habilitamos las funciones de la máquina virtual :
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • Descargamos el paquete de actualización del kernel WSL2 Linux.
  • Ejecutamos e instalamos dicho paquete..siguiente..siguiente.
  • Establecemos WSL 2 como la versión predeterminada para Docker :
    wsl --set-default-version 2
  • Por último instalamos docker:
    • Ejecutamos el .exe "Docker Desktop Installer".
    • Cuando se abra el .exe dejamos selecionado "Use WSL2 instead of Hyper-V".
    • Seguidamente ok, sig., etc y esperamos que finalice la instalación.
    • Abrir la app y comprobar el correcto funcionamiento.
  • IMPORTANTE : Es necesario reiniciar el sistema para que el mismo tome los cambios del Kernel WSL2 correctamente.

1.1.2) Configuración de contenedores de docker

Contenedor RabbitMQ

  • Descargamos la imagen de rabbitmq desde los repositorios centrales de docker (La config de docker está como variable de entorno, podemos decargar imagenes en cualquier directorio)
docker pull rabbitmq:3-management
  • Creamos el contenedor con las configuraciones declaradas (La config de docker está como variable de entorno, podemos crear contenedores desde cualquier directorio)
docker run --name rabbitmq --hostname my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
  • Seguidamente deberíamos tener el container corriendo desde docker desktop

1.2) Configuración del proyecto desde cero 🔝

Ver

1.2.0) Configuraciones iniciales

  • Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
git clone https://github.com/andresWeitzel/RabbitMQ_Nodejs_example
  • Nos posicionamos sobre el proyecto
cd 'projectName'
  • Instalamos la última versión LTS de Nodejs(v18)
  • Abrimos una terminal desde vsc
  • Inicializamos un proyecto nodejs
git init
  • Instalamos la dependencia amqplib para crear clientes AMQP de RabbitMQ.
npm install --save amqplib
  • Creamos un archivo .gitignore y agregamos los files necesarios (por el momento node_modules)
node_modules
  • Creamos un direct source (src) para agregar los publishers and consumers

1.2.1) Docker para Windows 10/11 (64 bits).

  • Descargamos e instalamos el JDK de Java > 8.x para poder implementar docker.
  • Descargamos Docker (para windows).
  • Abrimos una PS como admin y habilitamos el subsistema de linux :
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
  • Habilitamos las funciones de la máquina virtual :
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • Descargamos el paquete de actualización del kernel WSL2 Linux.
  • Ejecutamos e instalamos dicho paquete..siguiente..siguiente.
  • Establecemos WSL 2 como la versión predeterminada para Docker :
    wsl --set-default-version 2
  • Por último instalamos docker:
    • Ejecutamos el .exe "Docker Desktop Installer".
    • Cuando se abra el .exe dejamos selecionado "Use WSL2 instead of Hyper-V".
    • Seguidamente ok, sig., etc y esperamos que finalice la instalación.
    • Abrir la app y comprobar el correcto funcionamiento.
  • IMPORTANTE : Es necesario reiniciar el sistema para que el mismo tome los cambios del Kernel WSL2 correctamente.

1.2.2) Configuración de contenedores de docker

Contenedor RabbitMQ

  • Descargamos la imagen de rabbitmq desde los repositorios centrales de docker (La config de docker está como variable de entorno, podemos decargar imagenes en cualquier directorio)
docker pull rabbitmq:3-management
  • Creamos el contenedor con las configuraciones declaradas (La config de docker está como variable de entorno, podemos crear contenedores desde cualquier directorio)
docker run --name rabbitmq --hostname my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management
  • Seguidamente deberíamos tener el container corriendo desde docker desktop

1.3) Tecnologías 🔝

Ver
Tecnologías Versión Finalidad
SDK 4.3.2 Inyección Automática de Módulos para Lambdas
NodeJS 14.18.1 Librería JS
VSC 1.72.2 IDE
Postman 10.11 Cliente Http
CMD 10 Símbolo del Sistema para linea de comandos
Git 2.29.1 Control de Versiones

Plugin Descripción
Serverless Plugin Librerías para la Definición Modular

Extensión
Prettier - Code formatter
YAML - Autoformatter .yml (alt+shift+f)


Sección 2) Endpoints y Ejemplos.

2.0) Endpoints y recursos 🔝

Ver


Sección 3) Prueba de funcionalidad y Referencias.

3.0) Prueba de funcionalidad 🔝

Ver

3.1) Referencias 🔝

Ver

Documentación

Docker rabbitmq

Códigos de ejemplos


About

Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Desktop, amqplib, entre otros.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published