https://github.com/andresweitzel/rabbitmq_nodejs_example
Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Desktop, amqplib, entre otros.
https://github.com/andresweitzel/rabbitmq_nodejs_example
amqplib docker docker-desktop nodejs rabbitmq
Last synced: 7 months ago
JSON representation
Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Desktop, amqplib, entre otros.
- Host: GitHub
- URL: https://github.com/andresweitzel/rabbitmq_nodejs_example
- Owner: andresWeitzel
- License: gpl-3.0
- Created: 2023-06-27T18:20:47.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-04T21:44:19.000Z (about 2 years ago)
- Last Synced: 2025-02-01T12:46:17.138Z (8 months ago)
- Topics: amqplib, docker, docker-desktop, nodejs, rabbitmq
- Language: JavaScript
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RabbitMQ_Nodejs_example
Comunicación entre publisher y consumers implementado con Nodejs, RabbitMQ, Docker, Docker Dektop, amqplib, entre otros.
* [Playlist prueba de funcionalidad](https://www.youtube.com/playlist?list=PLCl11UFjHurDPyOkEXOR6JO-vUnYqd1FW)
## Índice 📜
Ver
### Sección 1) Descripción, configuración y tecnologías- [1.0) Descripción del Proyecto.](#10-descripción-)
- [1.1) Ejecución del Proyecto.](#11-ejecución-del-proyecto-)
- [1.2) Configuración del proyecto desde cero](#12-configuración-del-proyecto-desde-cero-)
- [1.3) Tecnologías.](#13-tecnologías-)### Sección 2) Endpoints y Ejemplos
- [2.0) EndPoints y recursos.](#20-endpoints-y-recursos-)### Sección 3) Prueba de funcionalidad y Referencias
- [3.0) Prueba de funcionalidad.](#30-prueba-de-funcionalidad-)
- [3.1) Referencias.](#31-referencias-)
## Sección 1) Descripción, configuración y tecnologías
### 1.0) Descripción [🔝](#índice-)
Ver
### 1.0.0) Descripción General
*
### 1.0.1) Descripción Arquitectura y Funcionamiento
*
### 1.1) Ejecución del Proyecto [🔝](#índice-)
Ver
#### 1.1.0) Configuraciones iniciales
* Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
```git
git clone https://github.com/andresWeitzel/RabbitMQ_Nodejs_example
```
* Nos posicionamos sobre el proyecto
```git
cd 'projectName'
```
* Instalamos la última versión LTS de [Nodejs(v18)](https://nodejs.org/en/download).
* Instalamos todas las librerías necesarias
```git
npm i
```#### 1.1.1) Docker para Windows 10/11 (64 bits).
* Descargamos e instalamos el JDK de [Java > 8.x](https://www.java.com/es/download/ie_manual.jsp) para poder implementar docker.
* Descargamos [Docker (para windows)](https://docs.docker.com/desktop/install/windows-install/).
* Abrimos una PS como admin y habilitamos el subsistema de linux :
```cmd
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
* Habilitamos las funciones de la máquina virtual :
```cmd
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```
* Descargamos el paquete de actualización del [kernel WSL2 Linux](https://learn.microsoft.com/it-it/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package).
* Ejecutamos e instalamos dicho paquete..siguiente..siguiente.
* Establecemos WSL 2 como la versión predeterminada para Docker :
```cmd
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)
```git
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)
```git
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 [🔝](#índice-)
Ver
#### 1.2.0) Configuraciones iniciales
* Una vez creado un entorno de trabajo a través de algún ide, clonamos el proyecto
```git
git clone https://github.com/andresWeitzel/RabbitMQ_Nodejs_example
```
* Nos posicionamos sobre el proyecto
```git
cd 'projectName'
```
* Instalamos la última versión LTS de [Nodejs(v18)](https://nodejs.org/en/download)
* Abrimos una terminal desde vsc
* Inicializamos un proyecto nodejs
```git
git init
```
* Instalamos la dependencia [amqplib](https://www.npmjs.com/package/amqplib) para crear clientes AMQP de RabbitMQ.
```git
npm install --save amqplib
```
* Creamos un archivo .gitignore y agregamos los files necesarios (por el momento node_modules)
```git
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](https://www.java.com/es/download/ie_manual.jsp) para poder implementar docker.
* Descargamos [Docker (para windows)](https://docs.docker.com/desktop/install/windows-install/).
* Abrimos una PS como admin y habilitamos el subsistema de linux :
```cmd
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
* Habilitamos las funciones de la máquina virtual :
```cmd
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
```
* Descargamos el paquete de actualización del [kernel WSL2 Linux](https://learn.microsoft.com/it-it/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package).
* Ejecutamos e instalamos dicho paquete..siguiente..siguiente.
* Establecemos WSL 2 como la versión predeterminada para Docker :
```cmd
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)
```git
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)
```git
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 [🔝](#índice-)
Ver
| **Tecnologías** | **Versión** | **Finalidad** |
| ------------- | ------------- | ------------- |
| [SDK](https://www.serverless.com/framework/docs/guides/sdk/) | 4.3.2 | Inyección Automática de Módulos para Lambdas |
| [NodeJS](https://nodejs.org/en/) | 14.18.1 | Librería JS |
| [VSC](https://code.visualstudio.com/docs) | 1.72.2 | IDE |
| [Postman](https://www.postman.com/downloads/) | 10.11 | Cliente Http |
| [CMD](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmd) | 10 | Símbolo del Sistema para linea de comandos |
| [Git](https://git-scm.com/downloads) | 2.29.1 | Control de Versiones || **Plugin** | **Descripción** |
| ------------- | ------------- |
| [Serverless Plugin](https://www.serverless.com/plugins/) | 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 [🔝](#índice-)
Ver
## Sección 3) Prueba de funcionalidad y Referencias.
### 3.0) Prueba de funcionalidad [🔝](#índice-)
Ver
### 3.1) Referencias [🔝](#índice-)
Ver
#### Documentación
* [Introducción a RabbitMQ](https://levelup.gitconnected.com/introduction-to-rabbitmq-with-nodejs-61e2aec0c52c)#### Docker rabbitmq
* [Crear un contenedor de RabbitMQ](https://cloudinfrastructureservices.co.uk/create-rabbitmq-docker-container-image/)#### Códigos de ejemplos
* [Demo rabbitmq nodejs](https://github.com/bervProject/rabbitmq-demo/tree/main)