Materia: ST0263: Tópicos Especiales en Telemática
Estudiantes:
- Jose Alejandro Duque Piedrahita - [email protected]
- Pedro Saldarriaga Fontan - [email protected]
- Juan Pablo Zuluaga Pelaez - [email protected]
Profesor: Alvaro Enrique Ospina Sanjuan - [email protected]
Calculadora Distribuida basada en Microservicios usando gRPC, REST y RabbitMQ
Implementación de una aplicación distribuida con:
- Cliente REST
- API Gateway
- Microservicios gRPC
- Middleware orientado a mensajes (RabbitMQ)
- Contenerización completa con Docker
- Cliente REST funcional con FastAPI
- API Gateway desarrollado en FastAPI
- Microservicios independientes para suma, resta, multiplicación y división usando gRPC
- Integración de RabbitMQ como Message-Oriented Middleware (MOM)
- Implementación de consumidor RabbitMQ para operaciones fallidas
- Contenerización de todos los componentes con Docker
- Documentación automática de APIs con Swagger (FastAPI)
- Arquitectura desacoplada y escalable
- El proyecto se completó con exito todos los aspectos.
- Arquitectura basada en microservicios
- API Gateway Pattern para centralización de solicitudes
- Comunicación eficiente entre servicios usando gRPC + Protocol Buffers
- RabbitMQ como broker de mensajes para tolerancia a fallos (MOM)
- Docker + Docker Compose para contenerización y orquestación
- Principios de bajo acoplamiento y alta cohesión
- Lenguaje: Python 3.11
- Frameworks:
- FastAPI (REST y Gateway)
- gRPC (microservicios)
- RabbitMQ (MOM)
- Librerías:
- grpcio, grpcio-tools
- pika
- Contenerización: Docker 24.0
- Broker: RabbitMQ 3.9-management
git clone https://github.com/joseduquep/gRPC-Calculator.git
cd gRPC-Calculator
docker-compose up --build
docker-compse upServicios disponibles:
- Cliente REST: http://localhost:8000/docs
- RabbitMQ Admin: http://localhost:15672 (admin/admin)
Variables de entorno:
RABBIT_HOST=rabbitmq-brokerRABBIT_USER=adminRABBIT_PASS=admin
Puertos expuestos:
- Cliente REST:
8000 - RabbitMQ AMQP:
5672, Web:15672
.
├── client_rest
├── gateway
├── sum_service
├── sub_service
├── mul_service
├── div_service
├── rabbitmq
├── docker-compose.yml
└── README.md- Python 3.11
- Docker 24.0
- Docker Compose
- RabbitMQ 3.9-management
git clone https://github.com/joseduquep/gRPC-Calculator.git
cd gRPC-Calculator
docker-compose up -d- Ingresar a http://18.208.223.92:8000/docs
- Ejecutar operaciones:
/sumsuma/subresta/mulmultiplicación/divdivisión
- Consultar mensajes pendientes en http://18.208.223.92:15672
- Se adjuntaron al correo del profesor
- Curso Fundamentos Básicos de Docker - Platzi
- FastAPI & Swagger - Documentación oficial y asistencia ChatGPT
- gRPC Python Documentation
- RabbitMQ Documentation
- "Middleware for Communications" - Qusay H. Mahmoud


