An open API service indexing awesome lists of open source software.

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.

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)