Configuración e Instalación - santig005/Distributed-Systems-gRPC GitHub Wiki
Configuración e Instalación Detallada
Esta guía proporciona instrucciones paso a paso para configurar y ejecutar todos los componentes del proyecto manualmente en un entorno local. Solo RabbitMQ se ejecutará mediante Docker.
Requisitos Previos
Asegúrate de tener instaladas las siguientes herramientas en tu sistema:
- Java JDK 17+
- Maven 3.8+
- Go (última versión estable)
- Node.js (versión LTS recomendada)
- Docker y Docker Compose (Solo para RabbitMQ)
- Compilador
protoc
y plugins gRPC para Java, Go, Node.js (necesario si modificas archivos.proto
) - Git
Configuración Inicial
-
Clonar el Repositorio:
git clone https://github.com/santig005/Distributed-Systems-gRPC cd Distributed-Systems-gRPC
-
Verificar/Ajustar Configuración de Red: Antes de iniciar los servicios, es crucial que las URLs configuradas para la comunicación entre ellos apunten correctamente a
localhost
y los puertos esperados.- API Gateway: Revisa
api-gateway/src/main/resources/application.yml
. Verifica queservices.*.host
sealocalhost
y los puertos (50051
,50053
,50054
) sean correctos. Asegúrate quespring.rabbitmq.host
sealocalhost
. - Order Service: Revisa
microservices/order_service/.env
. Asegúrate quePRODUCT_SERVICE_URL=http://localhost:50053
,USER_SERVICE_URL=http://localhost:50051
, yRABBITMQ_URL=amqp://guest:guest@localhost:5672
. - Otros Servicios: Verifica los puertos definidos en
*.env
omain.go
.
- API Gateway: Revisa
Ejecución de los Servicios
Abre una terminal separada para cada uno de los siguientes pasos.
Paso 1: Iniciar RabbitMQ (Docker)
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
* Verifica que el contenedor esté corriendo con `docker ps`.
* Accede a la UI: `http://localhost:15672` (user/pass: guest/guest).
Paso 2: Iniciar User Service (Go)
- Navega a la carpeta:
cd microservices/user_service
- Ejecuta:
go run main.go
- Observa la salida: Debería indicar que está escuchando en un puerto (ej:
50051
).
Paso 3: Iniciar Product Service (Node.js)
- Navega a la carpeta:
cd microservices/product_service
- Instala dependencias (si es necesario):
npm install
- Ejecuta:
npm start
- Observa la salida: Debería indicar que está escuchando en un puerto (ej:
50053
).
Paso 4: Iniciar Order Service (Node.js)
- Navega a la carpeta:
cd microservices/order_service
- Instala dependencias (si es necesario):
npm install
- Ejecuta:
npm start
- Observa la salida: Debería indicar que está escuchando en un puerto (ej:
50054
) y que se conectó a RabbitMQ.
Paso 5: Iniciar API Gateway (Java)
- Navega a la carpeta:
cd api-gateway
- (Opcional) Construye el proyecto:
mvn clean install -DskipTests
- Ejecuta:
mvn spring-boot:run
- Observa la salida: Busca el banner de Spring Boot y el mensaje indicando el puerto (ej:
8080
).
¡El sistema completo debería estar ahora en ejecución!
Verificación y Uso
- Utiliza herramientas como
curl
o Postman para interactuar con los endpoints REST expuestos por el API Gateway enhttp://localhost:8080
(o el puerto configurado). Consulta la Documentación de la API (si existe en la Wiki). - Revisa los logs en cada terminal para monitorizar la actividad y detectar errores.
- Utiliza la UI de RabbitMQ (
http://localhost:15672
) para observar las colas y los mensajes durante las pruebas de failover.
Detención de los Servicios
- Ve a la terminal de cada servicio (API Gateway, Order, Product, User) y presiona
Ctrl + C
. - Detén y elimina el contenedor de RabbitMQ:
docker stop rabbitmq docker rm rabbitmq