Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Dektop, amqplib, entre otros.
Ver
- 1.0) Descripción del Proyecto.
- 1.1) Ejecución del Proyecto.
- 1.2) Configuración del proyecto desde cero
- 1.3) Tecnologías.
1.0) Descripción 🔝
1.1) Ejecución del Proyecto 🔝
Ver
- 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
- 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.
- 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
- 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
- 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.
- 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) |